具有多个联接的Rails 3.2 ActiveRecord查询
我在尝试正确连接表数据并将其呈现到视图中时遇到问题。我目前正在设计一个系统,以便我的餐厅客户可以创建动态菜单,并在菜单页面上正确显示它们。目前我有一个菜单、菜单项和部分模型。我已经成功地创建了表单,可以将菜单项分配给菜单,并将菜单项与节关联。我的问题是呈现前端菜单。我希望我的菜单看起来像下面的模板。任何帮助都将不胜感激具有多个联接的Rails 3.2 ActiveRecord查询,activerecord,join,ruby-on-rails-3.1,Activerecord,Join,Ruby On Rails 3.1,我在尝试正确连接表数据并将其呈现到视图中时遇到问题。我目前正在设计一个系统,以便我的餐厅客户可以创建动态菜单,并在菜单页面上正确显示它们。目前我有一个菜单、菜单项和部分模型。我已经成功地创建了表单,可以将菜单项分配给菜单,并将菜单项与节关联。我的问题是呈现前端菜单。我希望我的菜单看起来像下面的模板。任何帮助都将不胜感激 Menu Name First Section Menu Item Menu Item ... 2nd Section Menu Item
Menu Name
First Section
Menu Item
Menu Item
...
2nd Section
Menu Item
Menu Item
...
我的模型和关联如下所示
在Menu.rb中
class Menu < ActiveRecord::Base
has_many :menu_menu_items, :dependent => :delete_all
has_many :menu_items, :through => :menu_menu_items
class MenuItem < ActiveRecord::Base
has_many :menu_menu_items
has_many :menus, :through => :menu_menu_items
belongs_to :sections
class Section < ActiveRecord::Base
has_many :menu_items, :dependent => :nullify
<div class="content">
<% @menus.each do |menu| %>
<h3><%= menu.name %> <br/></h3>
<% Section.all.each do |section| %>
<b><%= section.name %><br/></b>
<% menu.menu_items.each do |menu_items| %>
<%= menu_items.name %> <br/>
<% end %>
<% end %>
<% end %>
</div>
<% @menus.each do |menu| %>
<h3><%= menu.name %> <br/></h3>
<% Section.all.each do |section| %>
<b><%= section.name %><br/></b>
<% menu.menu_items.where(:section_id => section.id).each do |menu_items| %>
<%= menu_items.name %> <br/>
<% end %>
<% end %>
<% end %>
select count(sections.id),sections.name
from menu_items
join menu_menu_items on menu_items.id=menu_menu_items.menu_item_id
join menus on menus.id=menu_menu_items.menu_id
join sections on menu_items.section_id= sections.id
where menu_id=16 #for example.
group by sections.id;