Ken*_*and 1 activerecord ruby-on-rails ruby-on-rails-3
我有一个模型,当它实例化一个对象时,也会创建另一个具有相同用户ID的对象.
class Foo > ActiveRecord::Base
after_create: create_bar
private
def create_bar
Bar.create(:user_id => user_id #and other attributes)
end
end
Run Code Online (Sandbox Code Playgroud)
在Bar.rb中,我有attr_protected保护它免受黑客攻击.
class Bar > ActiveRecord::Base
attr_protected :user_id, :created_at, :updated_at
end
Run Code Online (Sandbox Code Playgroud)
就像现在一样,我似乎无法创建一个新的Bar对象而不禁用attr_protected或让Bar对象的user_id变为空白...
如何让bar对象接受来自foo的:user_id属性而不会失去对attr_protected的保护?
Rob*_*rty 10
在呼叫new时create,或find_or_create_by(以及其他最终呼叫的人new)你可以传递一个额外的选项,without_protection: true.
http://api.rubyonrails.org/v3.2.22/classes/ActiveRecord/Base.html#method-c-new