use*_*363 3 ruby ruby-on-rails
在Rails 3/4模型中,如果field1声明了一个字段attr_accessor:
attr_accessor :field1
Run Code Online (Sandbox Code Playgroud)
如果field1在模型中存在,如何检查?column_exists?并且method_defined?似乎只使用模型列而field1不是模型列.
mak*_*han 10
attr_accessor定义了两种方法:def field1并且def field1=(val),所以你能做的最好的就是检查这两个函数是否存在.
如果你有一个对象:
object.respond_to? :field1
object.respond_to? :field1=
Run Code Online (Sandbox Code Playgroud)
如果不这样做,请使用:
Class.instance_methods.include? :field1
Class.instance_methods.include? :field1=
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2975 次 |
| 最近记录: |