Ruby on rails 3 如何将其作为一个查询编写?
我有一个叫Shop的模型和一个叫Brand的模型Ruby on rails 3 如何将其作为一个查询编写?,ruby-on-rails-3,activerecord,Ruby On Rails 3,Activerecord,我有一个叫Shop的模型和一个叫Brand的模型 shop :has_many_brands brands: belongs_to_shop 我想做的是让一个查询执行以下操作。 选择所有商店和品牌。 显示所有店铺的列表,首先显示按shop.name订购品牌的店铺,然后显示按shop.name订购的其他店铺 希望它有意义 这可能吗?如果您只需要在视图中显示一个列表,最简单的方法是先显示一个列表,然后再显示另一个列表 因此,您将显示所有带有品牌的商店,并进行正常排序 然后显示所有没有品牌的店铺,并
shop :has_many_brands
brands: belongs_to_shop
我想做的是让一个查询执行以下操作。选择所有商店和品牌。 显示所有店铺的列表,首先显示按shop.name订购品牌的店铺,然后显示按shop.name订购的其他店铺 希望它有意义
这可能吗?如果您只需要在视图中显示一个列表,最简单的方法是先显示一个列表,然后再显示另一个列表 因此,您将显示所有带有品牌的商店,并进行正常排序 然后显示所有没有品牌的店铺,并正常排序 在您的shop show controller中:
if Shop.brands.empty?
@shopsWithout = @shops.sort_by{ |shop| shop.name}
else
@shopsWith = @shops.sort_by{ |shop| topic.name}
end
然后在您的视图中,只需显示每个
<% unless @shopsWith.blank? %>
<% @shopsWith.each do |shop| %>
Shop: <%= shop.name %> Brand: <%= (you can loop shop.brands.all) %>
<% end %>
<% end %>
<% unless @shopsWithout.blank? %>
<% @shopsWithout.each do |shop| %>
Shop: <%= shop.name %><br />
<% end %>
<% end %>
店铺:品牌:
商店:
我测试了这个,效果很好。不知道如何连接@shopsWith和@shopsWithout,但如果您可以在控制器中实现这一点(@shops=@shopsWith),则仅当所有店铺都有品牌时,您才需要它们的列表。如果它们没有品牌,您希望在有品牌的店铺之后显示它们?