我有一个阶段模型,属于用户模型。用户模型has_many阶段。
当我尝试创建一个New Stage时,其hidden_field包含id 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
是一个Integer字段。
观点:
<%= f.hidden_field :user, :value => current_user.id %>
问题出在哪里?我找不到任何解决方案! 谢谢你的帮助。
答案 0 :(得分:2)
替换为
<%= f.hidden_field :user_id, :value => current_user.id %>
答案 1 :(得分:1)
我不建议为此使用隐藏字段,因为用户可以修改隐藏字段。我建议在控制器中执行类似current_user.stages.create
的操作,这将预先填充创建的Stage中的user_id。