现在我连续两个表格
<section>
<%= render 'shared/micropost_form_purchase' %>
<%= render 'shared/micropost_form_sale' %>
</section>
然后是_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 %>
和_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 %>
所以我希望第一个微帖自动成为一个购买微博(我在微博数据库中有一个名为type的列,我想要描述销售或购买)和第二个我希望它成为销售微博。我使用的是hidden_field_tag因为我认为你不必在控制器中定义它,但我错了吗? hidden_field更合适吗?我该如何使用hidden_field_tag?
答案 0 :(得分:11)
您可以使用:
<%= f.hidden_field :type, :value => "sale" %>
或:
<%= hidden_field_tag 'micropost[type]', "sale" %>
但不是:
<%= f.hidden_field_tag :type, :value => "sale" %>
使用f.hidden_field
将使用变量@micropost
中的值,而hidden_field_tag
则不会使用该值。
答案 1 :(得分:2)
当您使用模型的表单助手时,它应该是f.hidden_field
而不是f.hidden_field_tag
:)