シード データを作成するときに attr_accessible をバイパスするクリーンな方法を実際に見つけることはできません。このシード ファイルが完全に安全であることはわかっているので、大量割り当てを問題なく使用できるようにしたいと考えています。
Rails 3にそれらを強制的に受け入れるクリーンな方法はありますか?
シード データを作成するときに attr_accessible をバイパスするクリーンな方法を実際に見つけることはできません。このシード ファイルが完全に安全であることはわかっているので、大量割り当てを問題なく使用できるようにしたいと考えています。
Rails 3にそれらを強制的に受け入れるクリーンな方法はありますか?
これは簡単なハックです (Mike に感謝します)。これを、seeds.rb の先頭に置きます。
# Dodge the mass assignment
User.send(:attr_accessible, :username)
User.send(:attr_accessible, :admin)
モデルを乱雑にすることなく、これを簡単に呼び出すことができます (:as => :seed を使用):
@user = User.find_or_create_by_username(:username => 'ryanonrails', :admin => true)
#in model
attr_accessible :name, :role,.... :as => :seed
#in seed.rb
model.assign_attributes({name: "Putin", role: "president"....},:as => :seed)
model.save