我是Rails的新手,我正在尝试为菜单项创建一个选择下拉列表。复杂的部分是每个餐厅都有许多类别,其中有许多菜单项。我的目标是有一个下拉列表,打印如下内容:
<optgroup label="Category 1">
<option value="menu_item 1">Menu Item 1</option>
<option value="menu_item 2">Menu Item 2</option>
<option value="menu_item 3">Menu Item 3</option>
</optgroup>
<optgroup label="Category 2">
<option value="menu_item 1">Menu Item 1</option>
<option value="menu_item 2">Menu Item 2</option>
<option value="menu_item 3">Menu Item 3</option>
<option value="menu_item 4">Menu Item 4</option>
</optgroup>
以下是我的模特
class Category < ActiveRecord::Base
belongs_to :restaurant
has_many :menus, dependent: :destroy
end
class Restaurant < ActiveRecord::Base
has_many :meals, dependent: :destroy
accepts_nested_attributes_for :meals
has_many :categories, dependent: :destroy
end
class Menu < ActiveRecord::Base
belongs_to :category
end
在我添加分类模型之前,我有以下内容来创建我的Meal对象:
<%= form_for [@customer,@meal] do |f| %>
<%=f.collection_select(:food_item,restaurant.menus.all, :name, :name) %>
<%= f.hidden_field :restaurant_id, value: restaurant.id %>
<%= f.submit "Submit meal"%>
<%end%>
我试图找出一种方法来做类似于Grouped Select in Rails的事情,但我不确定如何与所涉及的额外模型完全一致。如果我需要包含任何其他信息,请提前告知我们,并提前感谢您的帮助!
答案 0 :(得分:0)
得到了帮助,并且能够使用它!
<%= f.grouped_collection_select(:food_item, restaurant.categories, :menus, :name, :name, :name) %>
来源:http://apidock.com/rails/v4.2.1/ActionView/Helpers/FormOptionsHelper/grouped_collection_select