我有一个定义自定义attr_accessible
属性的模块,如下所示:
module MyModule
include ActiveModel::MassAssignmentSecurity
%w[var1 var2].each do |key|
attr_accessible key
end
end
class MyClass
include MyModule
end
由于 attr_accessible 在 中定义ActiveModel::MassAssignmentSecurity
,因此我将其包含在MyModule
. 但是,当我打电话时object = MyClass.first; object.var1
我收到以下错误:
NoMethodError: undefined method `class_attribute'
现在,这个方法似乎定义在 active_support/core_ext/class.rb 中。然而,即使之后
require 'active_support/core_ext/class'
我仍然收到相同的错误消息。
为了访问此方法,我应该包含哪个模块?我正在使用带有protected_attributes
gem 的 Rails 4。
更新1:添加include ActiveModel::MassAssignmentSecurity