素敵な人たち、こんばんは
シード データを使用して次のことを実行したかったのですが、大量割り当てエラーが発生しましたが、これは問題ありません。
#Seeds.rb
Category.create(name: 'Top hats', category_id: '44')
#Mass-assignment error
ActiveModel::MassAssignmentSecurity::Error: Can't mass-assign protected attributes: category_id
しかし、シード データを CSV ファイルに設定すると、次のコマンドを使用して正常にインポートできます。
#Seeds.rb
require 'csv'
CSV.foreach(Rails.root.join("category.csv"), headers: true) do |row|
BusinessCategory.create! do |category|
category.id = row[0]
category.name = row[1]
end
end
また、これは Rails コンソールでも機能します。
#Rails console
category = Category.new
category.name = 'Top hat'
category.id = 42
カテゴリ モデルにを設定することで簡単に修正できることはわかっていますがattr_accessible :category_id
、1) これが発生する理由についてもっと知りたいと思っていました。2) データをインポートしているだけなので、アクセス可能にする必要はないと思います。変える必要はないの?
前もって感謝します。
幸せな日々 :)