1

非表示フィールドと組み合わせたボタンを使用してオブジェクトを更新しようとしています。しかし、以下のコードはオブジェクトを「不明」で更新します (結果[4])。私は何を間違っていますか?

<%= form_for(@ask) do |f| %>
<% outcomes = [ "Advice", "Introduction", "Support", "Money", "Don't know" ] %>
<ul>
<% outcomes.each do |o| %>
    <li>
        <%= f.hidden_field :category, value: o %>
        <%= f.submit o, class: "btn btn-success" %>
    </li>
<% end %>
</ul>
<% end %>

各ボタンの HTML は次のとおりです。

<input id="ask_category" name="ask[category]" type="hidden" value="Introduction" /> #value is equal to each object in the array
<input class="btn btn-success" name="commit" type="submit" value="Introduction" />

これも正しく見えます...

4

1 に答える 1

4

1 つの大きなフォームではなく、いくつかの小さなフォームを作成してみてください。

<% outcomes = [ "Advice", "Introduction", "Support", "Money", "Don't know" ] %>
<ul>
<% outcomes.each do |o| %>
  <li>
    <%= form_for(@ask) do |f| %>
      <%= f.hidden_field :category, value: o %>
      <%= f.submit o, class: "btn btn-success" %>
    <% end %>
  </li>
<% end %>
</ul>
于 2012-11-08T19:17:41.007 に答える