3

我有一个定义自定义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_attributesgem 的 Rails 4。

更新1:添加include ActiveModel::MassAssignmentSecurity

4

0 回答 0