0

(首先我要说明的是,这个问题可能只有你读过这本书,甚至拿到了书才能回答,这样你就可以阅读第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”的行的解释中,他说,

最后,你会注意到表单除了按钮没有任何内容,但它仍然需要发送followed_id,我们通过hidden_​​field完成;

我的问题是:

为什么我们这里需要一个 hidden_​​field 来发送followed_id?据我所知,这条线

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

已经分配了 :followed_id 属性对吗?

4

1 回答 1

1

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

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

此行为表单创建一条新记录。

<%= f.hidden_field :followed_id %>

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

--> 您可能想阅读它以了解有关 form_for 的更多信息http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-form_for

于 2011-10-31T05:37:06.810 回答