我有一个带有更新方法的user_controller。根据用户的来源,我有时必须为用户传递一个额外的参数(:锦标赛),这个参数实际上不会更新用户实例,但可以帮助我将用户重定向到最后一页的右侧页面。更新行动。
这是我的更新方法:
unknown attribute 'tournament' for User.
当我尝试使用user_params更新我的用户时问题出现在elsif中,它会引发错误 def user_params
params.require(:user).permit(
:extradoc,
:address,
:birthdate,
:certifmedpicture,
:club,
:email,
:first_name,
:genre,
:judge_number,
:last_name,
:licence_number,
:licencepicture,
:login_aei,
:name,
:password_aei,
:picture,
:ranking,
:telephone,
:sms_forfait,
:sms_quantity,
:tournament
)
end
我的用户参数类似于:
{{1}}
如何在没有:tournament param的情况下更新我的用户,同时允许它,以便我可以使用它在操作结束时将我的用户重定向到正确的位置?
答案 0 :(得分:3)
您需要为attr_accessor
属性创建tournament
才能实现此目标。
请转到您的用户模型,为attr_accessor
创建tournament
,如下所示:
attr_accessor :tournament
现在您可以在表单中设置锦标赛价值。从tournament
移除user_params
。
您可以在params[:user][:tournament]
检查和重定向中获得价值。您的对象也会正确更新。