У меня есть две функции уровня уровня, которые заполняют два массива, 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
Я пытаюсь создать полный список избранных, где favorite.style.shoe.brand
равно текущей марки я Перебор, так что я могу отобразить стили, Brand
.
В качестве альтернативы вы можете определить 'self.my_favorite_brands' как просто' Favorite.my_favorites.map {| f | f.style.shoe.brand} .uniq'. – lurker
Как определяется «Brand.my_favorite»? – lurker
@mbratch извините, это опечатка. Я починил это. – Thalatta