试图关联两个列表

时间:2013-09-12 19:25:18

标签: ruby-on-rails ruby

我有两个模型级函数,用于填充两个数组my_favorite_brandsmy_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。两个模型FavoriteBrand之间的关系如下。 Shoes有许多Styles,其中有许多FavoriteStyle属于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}}显示样式。

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