我有一个方法需要循环哈希并检查模型表中是否存在每个键,否则它将删除键/值.
例如
number_hash = { :one => "one", :two => "two" }
Run Code Online (Sandbox Code Playgroud)
而Number表只有一列:所以:两列将被删除.
如何检查模型是否具有属性?
And*_*art 194
对于一个班级
使用属性的字符串名称Class.column_names.include? attr_name在哪里attr_name.
在这种情况下: Number.column_names.include? 'one'
例如
使用record.has_attribute?(:attr_name)或record.has_attribute?('attr_name')(Rails 3.2+)或record.attributes.has_key? attr_name.
在这种情况下:number.has_attribute?(:one)或number.has_attribute?('one')或number.attributes.has_key? 'one'
Nic*_*ick 13
如果您还需要检查别名,可以使用Number.method_defined? attr_name或number.class.method_defined? attr_name.
我必须为具有别名字段的Mongoid对象执行此操作.
在您的实例对象中,您也可以使用defined? instance.attribute或instance.respond_to? :attribute.
这些是检查模型属性或任何方法的更通用的解决方案.
| 归档时间: |
|
| 查看次数: |
74364 次 |
| 最近记录: |