Rails 3 では、アクセス可能な属性を定義できます。
attr_accessible :rating, :review
このモデルには、user_id偽造/ハッキングを防ぐために保護された追加機能があります。この値はコントローラーで割り当てられます。
@review.user_id = current_user.id
Firebug を使用して を手動で含めるとuser_id、 の一部になりますが、params[:review]はuser_idで定義されてattr_accessibleいないため、データベースには保存されません。そのような場合はむしろ安全です。
質問1
私はRails 3のアクションブックを読みました.Yehuda Katzは、.deleteさらなるアクションが実行される前に不正なパラメータを削除する方法を含めparams[:review].delete(:user_id)ました. アプリをさらに保護するためにこれも含める必要がありますか、それともこの手順を無視する必要がありますか?
質問2
.delete_all_except上記のメソッドを含める必要がある場合は、params で許可されている属性にストリップするだけのようなものが必要です。それ、どうやったら出来るの?
ありがとう。