我有两个模型级函数,用于填充两个数组my_favorite_brands
和my_favorites
。它们的定义如下:
def self.my_favorite_brands
brand_list = Array.new
Favorite.my_favorites.each do |favorite|
brand_list.push(favorite.style.shoe.brand)
end
brand_list.uniq
end
这是my_favorites
:
def self.my_favorites
Favorite.where(:user => current_user)
end
我想打印Brand
中的每个my_favorite_brands
,同时这样做,每个Brand
打印出所有Favorites
my_favorites
Brand
。两个模型Favorite
和Brand
之间的关系如下。 Shoes
有许多Styles
,其中有许多Favorite
。 Style
属于User
,属于#Controller stuff
@fav_brands = Brand.my_favorite_brands
@fav_favorites = Favorite.my_favorites
#in the view
favorites_by_brand = Array.new
@fav_brands.each do |brand|
favorites_by_brand = @fav_favorites.map do |favorite|
unless favorite.style.shoe.brand == brand
@fav_favorites.delete("favorite")
end
favorites_by_brand.each do |favorite|
puts favorite.style
end
end
。这里有一些非功能性伪ish(因为它不能真正起作用)代码模仿我想做的事情。
favorite.style.shoe.brand
我正在尝试创建一个完整的收藏列表,其中Brand
等于我正在迭代的当前品牌,以便我可以按{{1}}显示样式。
答案 0 :(得分:0)
我想出了一种方法来完成我想要完成的任务,尽管它可能不是理想的。
styles_of_favorites = @fav_favorites.map {|favorite| favorite.style}
@fav_brands.each do |brand|
brand.shoes.each do |shoe|
shoe.style.each do | style|
if styles_of_favorites.include?(style)
puts style
end
end
end
end