我是一名 Rails 初学者,并且已经在网上(包括 Ryan 的 Railcasts)搜索有关此主题的信息,但我尝试过的一切都没有成功。
我试图允许用户将他们喜欢的零食类型添加到表中。我现在有三张表:零食(主表)、冰淇淋口味和品牌。我建立的关系是:
class Treats < ActiveRecord::Base
has_many :icecream_flavors
has_many :brands
class Brands < ActiveRecord::Base
belongs_to :treats
class Icecream_flavors < ActiveRecord::Base
belongs_to :treats
在 Treats 表中,我有 Icecream_flavor_id 和 Icecream_brand_id 的字段。
在 Icecream_flavors 表中,我有 flavor_name 和 brand_id 的字段。我在 Icecream_flavors 表中植入了信息(巧克力、香草等)以及品牌 ID。
我正在尝试做的是允许最终用户使用我的 Treats 新表单中的复选框来填充 Treats 表,这些复选框基于 Icreamflavors 表中的信息。我希望复选框将 icecream_flavor_id 和 brand_id 传递给 Treats 表。
我没有成功让复选框表单出现在“零食”表单中,更不用说将信息传递给表格了。
这是我一直使用的代码,用于从单独的 Brands 和 Icecream_flavors 表中提取信息的下拉和文本字段。我想用一个简单的复选框列表替换下拉和文本字段,该列表将仅从 Icecream_flavors 表中获取其数据以填充复选框数据,然后在提交时更新 Treats 表。
<h1>Treats</h1>
<%= render 'form' %>
<%= link_to 'Back', treats_path %>
<% form_for :treat, :url => treats_path do |f| %>
<div class="field">
<%= f.label :user_id %><br />
<%= f.number_field :user_id %>
</div>
<div><%= f.label :brand %><br />
<%= collection_select(:treats, :brand_id, Brand.all, :id, :name) %>
<div class="field">
<%= f.label :icecream_flavor_id %><br />
<%= f.number_field :icecream_flavor_id %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
任何指导将不胜感激。