Railsでコーディングを始めたばかりです。私が使用している: Rails 3.2.8 ruby 1.9.3p194
移行と対応するモデルをすべてファイル内に作成しました (簡潔にするために、それらをすべて一緒に示します)。
class CreateMovies < ActiveRecord::Migration
def up
create_table 'movies' do |t|
t.string 'title'
t.timestamps
end
end
def down
drop_table 'movies'
end
end
class Movie < ActiveRecord::Base
end
そこで、「Rails コンソール」に入り、学習プロセスとしてデータベースをいじってみたいと思います。
これは私が入力したものであり、私が得たエラーメッセージです:
1.9.3p194 :021 > k = Movie.new(:title => 'coco')
ActiveModel::MassAssignmentSecurity::Error: Can't mass-assign protected attributes: title
:without_protection => true を追加すると、上記のステートメントは正常に機能すると言わざるを得ません。
大量割り当てについて調べたところ、これは非常に注意する必要があることがわかりました。しかし、レールはデフォルトで大量割り当て保護を有効にしているようです。私の場合、ハッシュを使用してエントリを作成したいのですが、これはデバッグと学習に非常に役立ちます!
この種の保護を無効にする方法はありますか? デフォルトでパブリック属性を持ちたいです! どうすればそれを達成できますか?
私の Web 調査で、この機能がデフォルトでは存在しない、つまり ActiveModel がデフォルトで保護された属性を作成しないと結論付けたのは奇妙です。(http://stackoverflow.com/questions/3764899/is-there-a-way-to-make-rails-activerecord-attributes-private)しかし、私の場合、すべての属性はプライベートです!
私のコードでは、将来、すべての属性を個別に割り当てようとする必要がありますか? これは面倒です。セキュリティを確保し、この面倒なプロセスを回避するためのより良い方法はありますか?
心よりよろしくお願いします!