RoR:为什么我得到未定义的方法'hidden_​​field_tag'?

Big*_*337 4 form-helpers ruby-on-rails-3

现在我连续两个表格

<section>
        <%= render 'shared/micropost_form_purchase' %>
        <%= render 'shared/micropost_form_sale' %>
      </section>
Run Code Online (Sandbox Code Playgroud)

然后是_micropost_form_purchase.html.erb

<%= form_for(@micropost) do |f| %>
  <%= render 'shared/error_messages', object: f.object %>
  <div class="field no-indent">
    <%= f.text_area :content, placeholder: "What's something else you want to buy?" %>
    <%= f.hidden_field_tag :type, :value => "purchase" %>
  </div>
  <%= f.submit "Post", class: "btn btn-large btn-primary" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

对于_micropost_form_sale.html.erb我有

<%= form_for(@micropost, :html => { :id => "sale" }) do |f| %>
  <%= render 'shared/error_messages', object: f.object %>
  <div class="field no-indent">
    <%= f.text_area :content, placeholder: "What's something else you want to buy?" %>
    <%= f.hidden_field_tag :type, :value => "sale" %>
  </div>
  <%= f.submit "Post", class: "btn btn-large btn-primary" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

所以我希望第一个微帖自动成为一个购买微博(我在微博数据库中有一个名为type的列,我想要描述销售或购买)和第二个我希望它成为销售微柱.我使用的是hidden_​​field_tag因为我认为你不必在控制器中定义它,但我错了吗?hidden_​​field更合适吗?我该如何使用hidden_​​field_tag?

wee*_*HIS 12

您可以使用:

<%= f.hidden_field :type, :value => "sale" %>
Run Code Online (Sandbox Code Playgroud)

要么:

<%= hidden_field_tag 'micropost[type]', "sale" %>
Run Code Online (Sandbox Code Playgroud)

但不是:

<%= f.hidden_field_tag :type, :value => "sale" %>
Run Code Online (Sandbox Code Playgroud)

使用f.hidden_field将使用变量中的值@micropost,而hidden_field_tag不会使用它.