忽略ActiveRecord属性的存在?

时间:2018-12-06 23:43:40

标签: ruby-on-rails rspec

是否有一种优美的方式告诉Rails假装特定代码块不存在属性?我正在ActiveRecord模型上进行一些元编程,它可能已定义也可能未定义特定属性。我试图弄清楚如何测试未定义属性的情况。

1 个答案:

答案 0 :(得分:0)

是的! name already used by existing object

如果给定的属性位于属性哈希中,则返回ActiveRecord::AttributeMethods#has_attribute?,否则返回true,我可以将其称为类或实例方法。例如

false

请参见API docs reference for has_attribute?

更好:

您可以使用普通的旧红宝石MyModel.has_attribute? :attribute_name MyModel.first.has_attribute? :attribute_name

请参见API docs reference for method_defined?