如何将嵌套的fields_for代码直接放在父_form中?

时间:2016-08-06 21:44:41

标签: ruby-on-rails ruby model-view-controller

如何重写 duels/_form 中的代码,以便我可以直接将 dueler_fields 中的代码放在那里?

duels/_form

<%= simple_form_for(@duel) do |f| %>
  <%= f.text_field :consequence %>
  <%= f.text_field :reward %>
  <%= f.fields_for :duelers do |dueler| %>
    <%= render 'dueler_fields', :f => dueler %>
  <% end %>
  <%= link_to_add_association f, :duelers do %>
    <span class="glyphicon glyphicon-plus"></span> Dueler
  <% end %>
<% end %>

_dueler_fields

# I want to place these two lines of code in the _form
<%= f.number_field :user_id, placeholder: "Enter User ID" %>
<%= f.number_field :challenge_id, placeholder: "Enter Challenge ID" %>

duels_controller

def new
  @duel = Duel.new
  respond_with(@duel)
end

duels has_many duelers

1 个答案:

答案 0 :(得分:1)

f更改为dueler,您应该好好去。或者:

<%= simple_form_for(@duel) do |f| %>
  <%= f.text_field :consequence %>
  <%= f.text_field :reward %>
  <%= f.fields_for :duelers do |dueler_form| %>
    <%= dueler_form.number_field :user_id, placeholder: "Enter User ID" %>
    <%= dueler_form.number_field :challenge_id, placeholder: "Enter Challenge ID" %>
  <% end %>
<% end %>
相关问题