【问题标题】:Listing attributes in fields_for in Rails form在Rails表单中的fields_for中列出属性
【发布时间】:2016-12-12 01:46:22
【问题描述】:

我有一个form_for,它包含了一个Party和Guest模型的fields_for(一个派对有很多客人,接受客人的嵌套属性),一个客人属于一个派对。我有一个 form_for 我的派对模型,它列出了派对中每位客人的某些字段。我的表格工作得很好,但我想在表格中简单地列出每位客人的姓名,所以它会出现:

"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 ???显然,我的 guest_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,因此非常感谢任何帮助!

【问题讨论】:

    标签: ruby-on-rails form-for fields-for


    【解决方案1】:

    您正在使用设计吗?如果是,那么:

    <% if user_signed_in? %>
      <p>Hello <%= current_user.first_name %>, let us know your preferences:      </p>
    <%form_for @party do...
    ...
    ...
    
      <% end %>
    <% end %>
    

    您需要在隐藏字段中捕获 user_id,以便将其与选择一起保存。 我会考虑使用集合中的复选框或单选按钮。

    【讨论】:

    • 我没有使用设计,我需要聚会中每个用户的名字,无论那个人是否登录。所以,在我上面的例子中,如果 Bob 登录,但他和 Susie 在同一个聚会中,Bob 也应该看到 Susie 的名字在列表中,因为她在他的聚会中。
    • 所以这是一个多步骤的表单,首先捕获响应者的姓名以及他想要加入的一方。在他输入该信息后,他可以了解还有谁被邀请/接受/拒绝,以及如果他接受可以做出他的食物选择。谷歌搜索“rails multistep form”会产生很多关于这个主题的帖子和一些很好的教程。
    猜你喜欢
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多