在Rails 3/4模型中,如果使用field1声明了attr_accessor字段:

attr_accessor :field1

如何检查模型中是否存在field1column_exists?method_defined?似乎仅适用于模型列,而field1不是模型列。

最佳答案

attr_accessor定义了两种方法:def field1def 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/

10-13 02:18