在Michael Hartl的Rails教程书中,第491页的hidden_​​field方法有什么用?

时间:2011-10-31 05:30:18

标签: ruby-on-rails ruby-on-rails-3 railstutorial.org

(首先,我想要注意的是,如果你已经阅读了这本书,或者甚至拿到了这本书,那么这个问题可能只能得到解答,因此你可以阅读第491页的相关部分,因为我只能提取一小段并粘贴在这里。我为此道歉。)

这是 491 页上的书中使用的_follow.html.erb部分:

<%= form_for current_user.relationships.
                          build(:followed_id => @user.id) do |f| %>
<div><%= f.hidden_field :followed_id %></div>
<div class="actions"><%= f.submit "Follow" %></div> 
<% end %>

用于创建“关注”按钮以关注其他用户。

然后在他对“f.hidden_​​field”的处理线的解释中,他说,

  

最后,你会注意到表单没有除按钮之外的任何内容,但它仍然需要发送follow_id,我们用hidden_​​field完成;

我的问题是:

为什么我们在这里需要一个hidden_​​field来发送follow_id?就我看来,行

<%= form_for current_user.relationships.
                      build(:followed_id => @user.id) do |f| %>

已经分配了:followed_id属性吗?

1 个答案:

答案 0 :(得分:1)

我认为这两部分代码是不同的。

<%= form_for current_user.relationships.build(:followed_id => @user.id) do |f| %>

此行为表单创建新记录。

<%= f.hidden_field :followed_id %>

此代码会创建表单的实际参数。

- &GT;您可能需要阅读该内容以了解有关form_for http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-form_for

的更多信息