我有一个form_for,其中包含了派对和访客模型的fields_for(派对有很多访客,接受来宾的嵌套属性),并且访客属于派对。我有一个form_for我的Party模型,列出了聚会中每位客人的某些字段。我的表单工作得很好,但我只想在表单中列出每个客人的名字,所以它出现:
"Bob"
attending: yes || no
meal choice: chicken || veggie || pasta
"Susie"
attending: yes || no
meal choice: chicken || veggie || pasta
现在,我所拥有的只是:
attending: yes || no
meal choice: chicken || veggie || pasta
attending: yes || no
meal choice: chicken || veggie || pasta
如何为fields_for的每次迭代列出guest.first_name?显然,我的guests_form.first_name不起作用。
我的表单代码是:
<%= form_for @party do |f| %>
<%= f.hidden_field :party_id, value: current_party.id %>
<%= f.fields_for @guests do |guests_form| %>
<%= guests_form.first_name %>
<%= guests_form.label :attending, "attending?" %>
<%= guests_form.radio_button :attending, true, :checked => true %>
<%= guests_form.label :attending, "yes!", :value => true %>
<%= guests_form.radio_button :attending, false, :checked => false %>
<%= guests_form.label :attending, "no", :value => false %>
<%=guests_form.label :meal_id, "meal choice" %>
<%=guests_form.radio_button :meal_id, :checked => 1 %>
<%= guests_form.label :meal_id, "chicken", :value => 1 %>
<%=guests_form.radio_button :meal_id, :checked => 2 %>
<%= guests_form.label :meal_id, "veggie", :value => 2 %>
<%=guests_form.radio_button :meal_id, :checked => 3 %>
<%= guests_form.label :meal_id, "pasta", :value => 3 %>
<%end%>
<%= f.submit "submit", class: 'btn btn-primary btn-lg' %>
<%end%>
我之前从未使用过fields_for,所以任何帮助都会非常感激!!
答案 0 :(得分:1)
你在使用Devise吗?如果是,那么:
<% if user_signed_in? %>
<p>Hello <%= current_user.first_name %>, let us know your preferences: </p>
<%form_for @party do...
...
...
<% end %>
<% end %>
您需要在隐藏字段中捕获user_id,以便将其与选择一起保存。 我会考虑使用收藏品中的复选框或单选按钮。