Сопоставить несколько ассоциаций в одном экземпляре - PullRequest
0 голосов
/ 06 декабря 2018

Существует ли способ сопоставления нескольких ассоциаций в одном экземпляре?

Например:

@sale.sale_selections.flat_map { |ss| (ss.drinks + ss.food).map { |d, f| d.water, f.cake }}

Модель продажи

class Sale < ApplicationRecord
  accepts_nested_attributes_for :sale_selections, allow_destroy: true
  has_many :drinks, through: : sale_selections
  has_many :foods, through: : sale_selections
end

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Попробуйте следующее,

@sale.sale_selections.map { |ss| ss.drinks.map(&:water) + ss.food.map(&:cake) }.flatten
0 голосов
/ 06 декабря 2018
@sale.sale_selections.flat_map { |ss| 
  (ss.drinks + ss.food).map { |d| 
     [d.water, d.cake] 
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...