0

私は単純なRailsアプリケーションを持っており、本はbelongs_toユーザーであり、ユーザーはhas_manyの本でした。book モデルでは、user_id フィールドであるユーザー用のフィールドがあり、 current_user メソッドに devise を使用しています。現在、current_user に新しいブックを追加してもらいたいのですが、保護された属性を大量に割り当てられないというエラーが引き続き発生します: アイテム、ユーザー。アイテムがどこから来たのかわかりません。ユーザーをattr_assibleアイテムのリストに含める必要がありますか。問題は、本の所有者をハッキングして変更しようとしないように、本のユーザー属性を大量に扱いたくないということです。私はレール3.2.3を使用しています

4

2 に答える 2

1

これを本のモデルに追加します。

attr_accessible :user_id

またはこれを試してください:

@book = Book.new
@book.user_id = current_user.id
@book.save 

以下も参照してください。

http://api.rubyonrails.org/classes/ActiveModel/MassAssignmentSecurity/ClassMethods.html

于 2012-06-25T13:56:38.283 に答える
0

どこでブックを作成する場合でも、次のようにする必要があります。

current_user.new { :item => item }

これが機能するには、item属性の一括割り当てが有効になっている必要があります。

于 2012-06-25T13:56:54.117 に答える