在Rails 3/4模型中,如果使用field1
声明了attr_accessor
字段:
attr_accessor :field1
如何检查模型中是否存在
field1
? column_exists?
和method_defined?
似乎仅适用于模型列,而field1
不是模型列。 最佳答案
attr_accessor
定义了两种方法:def field1
和def field1=(val)
,所以您能做的最好的事情就是检查这两个函数的存在。
如果您有一个对象:
object.respond_to? :field1
object.respond_to? :field1=
如果不这样做,请使用:
Class.instance_methods.include? :field1
Class.instance_methods.include? :field1=
关于ruby-on-rails - Rails/Ruby-如何检查attr_accessor字段是否存在?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29619091/