我对设置表单名称及其参数感到困惑。
这是我的表格
<%= form_tag('/monster) do %>
<% @monsters.each do |monster| %>
<tr>
<th scope="row"><%= monster.id %></th>
<td><%= t("backpack.mon_infos.#{monster.name}.name") %></td>
<td><%= number_field_tag "monster[[#{monster.id},#{monster.name}]]", 0 %></td>
</tr>
<% end %>
<% end %>
params会得到这个
"monster" => {
"1,MonsterA" => "10",
"2,MonsterB" => "25"
}
但我希望它像
"monster" => {
"1" => {'name': 'MonsterA' ,'quanty': "10"},
"2" => {'name': 'MonsterB' ,'quanty': "25"}
}
答案 0 :(得分:2)
将id
和name
的值细分为他们自己的[id][name]
。要获取第二级哈希,请创建第二个键并将其映射到值。
<% @monsters.each do |monster| %>
<tr>
<th scope="row"><%= monster.id %></th>
<td><%= t("backpack.mon_infos.#{monster.name}.name") %></td>
<td><%= number_field_tag "monster[#{monster.id}]['name']", monster.name %></td>
<td><%= number_field_tag "monster[#{monster.id}]['quanty']", monster.quanty %></td>
</tr>
<% end %>
答案 1 :(得分:1)
你可以试试这个:
<%= form_tag('/monster) do %>
<% @monsters.each do |monster| %>
<tr>
<th scope="row"><%= monster.id %></th>
<td><%= t("backpack.mon_infos.#{monster.name}.name") %></td>
<%= hidden_field_tag "monster[#{monster.id}][name]", monster.name %>
<td><%= number_field_tag "monster[#{monster.id}][quantity]", 0 %></td>
</tr>
<% end %>
<% end %>