Ruby on rails Rails—在窗体上添加另一个类的数组
如果问题很简单,我很抱歉,我对Rails还相当陌生。我正在构建一个膳食计划应用程序,并尝试使用它,以便用户可以创建膳食,并将项目添加到该膳食中。例如,“鱼和薯条”一餐包括“鱼”和“薯条”。据我所知,我想我需要一种在膳食创建表单上创建一个项目数组的方法——但是我该怎么做呢 相关部分的膳食.rb:Ruby on rails Rails—在窗体上添加另一个类的数组,ruby-on-rails,arrays,forms,Ruby On Rails,Arrays,Forms,如果问题很简单,我很抱歉,我对Rails还相当陌生。我正在构建一个膳食计划应用程序,并尝试使用它,以便用户可以创建膳食,并将项目添加到该膳食中。例如,“鱼和薯条”一餐包括“鱼”和“薯条”。据我所知,我想我需要一种在膳食创建表单上创建一个项目数组的方法——但是我该怎么做呢 相关部分的膳食.rb: has_many :items accepts_nested_attributes_for :items 和item.rb belongs_to :meal 我需要向餐单部分添加什么才能让它接受一系列
has_many :items
accepts_nested_attributes_for :items
和item.rb
belongs_to :meal
我需要向餐单部分添加什么才能让它接受一系列项目?对不起,我不知道从哪里开始!或者,如果有更简单的方法,请让我知道。但是我不想在这顿饭上有一个“item\u 1\u id”、“item\u 2\u id”等的列表!!谢谢
<%= form_for(@meal) do |f| %>
<% if @meal.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@meal.errors.count, "error") %> prohibited this meal from being saved:</h2>
<ul>
<% @meal.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :category %><br />
<%= f.text_field :category %>
</div>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :child_id %><br />
<%= f.number_field :child_id %>
</div>
<div class="field">
<%= f.label :time %><br />
<%= f.date_select :time %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
禁止保存此餐:
有一个很棒的railscast插曲,讲述了这一点。此外,您还需要使用javascript创建一个“添加项”链接。下面的示例将始终有一个新项目可用
你会想做这样的事情
看法
从我们的案例场景中,我想到的第一件事是,您需要有
多对多
关系,而不是一对多
<代码>一个项目可能属于多顿饭。关于将相关项目添加到一顿饭中,您可以使用gem。我正确理解你的问题了吗?是的,我想你理解了,谢谢你的建议,我会调查的!太棒了,谢谢你,我会调查这些,看起来正是我想要的。
<%= f.fields_for :items do |builder| %>
<fieldset>
</fieldset>
<% end %>
@meal.items.build