0

我有一个 Stage 模型,它属于用户模型。用户模型 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改为在控制器中执行类似操作,这将在创建的 Stage 中预先填充 user_id。

于 2013-01-10T10:51:57.157 回答