现在我有一排RoR:为什么我得到未定义的方法'hidden_field_tag'?
<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_tag?
好的谢谢。我注意到,当我创建这些microposts时,它并没有在数据库的类型列中记录任何内容。这是否意味着它没有工作,或者hidden_field_tag只是不写入数据库? – BigBoy1337
我编辑了我的答案,以更好地解释hidden_field_tag的作用。您需要确保该字段的名称是最终成为保存到数据库的散列的一部分的名称。 – weexpectedTHIS
然后它给了我错误:无法批量分配受保护的属性:类型。这个质量如何分配 – BigBoy1337