有没有一种优雅的方法可以告诉Rails假装某个特定代码块不存在属性?我正在ActiveRecord模型上进行一些元编程,它可能定义了特定的属性,也可能没有定义。我正试图弄清楚如何测试没有定义属性的情况。
是!ActiveRecord::AttributeMethods#has_attribute?
如果给定的属性在属性哈希中,则返回true
,否则返回false
,并且可以作为类或实例方法调用。例如
MyModel.has_attribute? :attribute_name
MyModel.first.has_attribute? :attribute_name
参见API文件参考has_attribute?
更好的是:
你可以使用普通的老红宝石method_defined?
参见API文件参考method_defined?