5

今、私は2つのフォームを続けています

<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 %>

最初のマイクロポストを自動的に購入マイクロポストにしたい (私は販売または購入のいずれかを描写したい文字列であるタイプと呼ばれるマイクロポストデータベースの列を持っています) 2番目のマイクロポストは販売になりたいですマイクロポスト。コントローラで定義する必要はないと思ったので、hidden_​​field_tag を使用していましたが、間違っていますか? hidden_​​field の方が適切ですか? hidden_​​field_tag はどのように使用できますか?

4

2 に答える 2

12

以下を使用できます。

<%= f.hidden_field :type, :value => "sale" %>

また:

<%= hidden_field_tag 'micropost[type]', "sale" %>

だがしかし:

<%= f.hidden_field_tag :type, :value => "sale" %>

Usingf.hidden_fieldは variable の値を使用しますが@micropost、それhidden_field_tagは使用しません。

于 2012-09-13T22:43:04.697 に答える
2

モデルのフォームヘルパーを使用しているのではf.hidden_fieldないはずです:)f.hidden_field_tag

于 2012-09-13T22:15:00.270 に答える