' hidden_​​field&#39 ;?的目的是什么?

时间:2014-03-22 17:44:30

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4

例如,这是一个snippit:

 <%= form_for [@event, @event.comments.new], html: {class: 'form-horizontal', role: 'form'}, remote: true do |f| %>
            <div><%= f.hidden_field :user_id, value: current_user.id %></div>
            <div class="form-group">

f.hidden_​​field的目的是什么:user_id ,?代码是否可以在没有它的情况下工作,或者是否必须包含这一行。

干杯!

2 个答案:

答案 0 :(得分:1)

如果没有看到将处理表单的控制器代码,隐藏字段似乎保持当前登录用户的id。我假设这将用于进一步的操作,例如,将事件/评论归因于针对该用户创建。

视图不需要隐藏字段,但我想如果删除它,以下控制器操作将失败。

hidden_​​field方法只是在html中创建<input ... type="hidden" />,这意味着当表单提交时,该值包含在表单参数中,但该值对用户不可见。

答案 1 :(得分:0)

在您的情况下,您正在为特定用户创建包含评论的活动。因此,user_id将作为hidden_field传递。如果没有,user_id的值将保存为nil,这会导致错误。