Ранее в вашем запросе ActiveRecord, где вы предположительно получаете данные для selected_branch
, создайте его в своем запросе до render :json
. Я бы начал с использования области рельсов на модели.
Что-то вроде этого:
В модели (не уверен, что это такое, так что я буду ссылаться на него как филиал)
Branch.rb
class Branch < ActiveRecord::Base
has_many :products
scope :with_enabled_products, -> { includes(:products).where(products: {enabled: true}) }
end
Затем в контроллер
selected_branch = Branch.with_enabled_products
Тогда вы должны визуализировать JSON только те из ветвей, которые имеют ena сгущенные продукты. Конечно, вы всегда можете использовать .where(...)
в конце этой области, потому что это просто отношение ActiveRecord, и вы можете сузить набор данных.
Я получаю это: NoMethodError (undefined method 'enabled_products 'для #): –
MXV
Вы должны вызвать область действия, я понял в своем первоначальном ответе, я ошибочно набрал вызов метода в контроллере, попробуйте изменить это вместо «Branch.with_enabled_products» и посмотреть, как это работает. Я обновлю ответ. – derekyau