답변:
수업 용
사용은 Class.column_names.include? attr_name어디에서 attr_name당신의 속성의 문자열 이름입니다.
이 경우 : Number.column_names.include? 'one'
예를 들어
사용 record.has_attribute?(:attr_name)또는 record.has_attribute?('attr_name')(레일 3.2 이상) 또는 record.attributes.has_key? attr_name.
이 경우 : number.has_attribute?(:one)또는 number.has_attribute?('one')또는number.attributes.has_key? 'one'
number.has_attribute?기호 나 문자열 받아
user했지만 user_id일부 모델이 사용자를 위임했기 때문에 대신 찾아야했습니다 .
Hash#has_key?찬성되지 않습니다Hash#key?
별칭도 확인해야하는 경우 Number.method_defined? attr_name또는number.class.method_defined? attr_name .
별칭 필드가있는 Mongoid 개체에 대해이 작업을 수행해야했습니다.
ModelName.attribute_method? :attr_name내 인스턴스에서 일을 무엇 이었습니까
인스턴스 객체에서 defined? instance.attribute또는 instance.respond_to? :attribute.
이들은 모델 속성 또는 모든 방법을 확인하는보다 일반적인 솔루션입니다.
instance.respond_to?(:attribute) == false ; instance.attribute ; instance.respond_to?(:attribute) == true
Hash#select:number_hash.select { |key, value| Number.column_names.include? key }