0

ユーザーモデルに属するステージモデルがあります。ユーザー モデル has_many ステージ。

の ID を含む hidden_​​field を使用して新しいステージを作成しようとするとcurrent_user、次のエラーが発生します。

ActiveRecord::AssociationTypeMismatch in StagesController#create
User(#63609336) expected, got String(#16545012)

配列は次のとおりです。

 {"utf8"=>"✓",
 "authenticity_token"=>"YD3VVr9Hntg/LEGjFAzu2roR5NGe6FPclew+zJOvGpY=",
 "stage"=>{"user"=>"8",
 "intitule"=>"er",
 "entreprise"=>"er",
 "secteur"=>"er",
 "mission"=>"er",
 "duree"=>"erea",
 "annee_debut"=>"az",
 "annee_fin"=>"z",
 "comment"=>"az",
 "site_entreprise"=>"az"},
 "commit"=>"Create Stage"}

user_id整数フィールドです。

景色 :

<%= f.hidden_field :user, :value => current_user.id %>

問題はどこだ ?解決策が見つかりません!ご協力いただきありがとうございます。

4

2 に答える 2

2

と置換する

<%= f.hidden_field :user_id, :value => current_user.id %>
于 2013-01-10T10:49:48.763 に答える
1

隠しフィールドはユーザーが変更できるため、これに隠しフィールドを使用することはお勧めしません。代わりに、コントローラーで次のようなことを行うことをお勧めしcurrent_user.stages.createます。これにより、作成されたステージに user_id が事前設定されます。

于 2013-01-10T10:51:57.157 に答える