如何从控制器类访问隐藏值字段。
我的隐藏值字段是
<input id="user_id" name="user.id" size="30" type="text" value="<%= @user.id %>" />
目前我正在尝试使用@ user.id访问, @user = User.find(@ user.id) 但它的生成错误如
“被调用id为nil,错误地为4 - 如果你真的想要id为nil,请使用object_id”
然后我如何访问上面的隐藏值
提前谢谢, 马赫什
答案 0 :(得分:1)
您需要将字段名称更改为user_id
以更加传统。
您可以使用params
哈希访问任何POST / GET数据。
# your controller
params[:user_id]
# => "field_value
答案 1 :(得分:1)
两个快速笔记。我会避免依赖于表单提交的user_id
,这很容易伪造。最好从控制器创建,更新或删除方法中的身份验证中提取它。
其次,我会调查表单助手,例如form_for
或fields_for
中的hidden_field
。
<% form_form @some_model do %>
<%= f.hidden_field(:some_field_on_the_model) %>
<%= hidden_field(:some_model, :some_field) %>
然后使用先前详细的参数hash来将值拉回到控制器中。
mymodel = MyModel.find(params[:some_field])