У меня есть простой вопрос, но я не могу найти никакого решения, хотя я нашел вещи, которые похожи, но просто не совсем то, что я ищу.
У меня есть приложение, в котором у пользователя много активов через класс UserAsset. Я хочу иметь возможность делать current_user.user_assets, но я хочу только возвращать записи, которые имеют актив с указанным значением поля «активный».
Этот пост похож, но мне нужно использовать основную модель, а не модель соединения в качестве фильтра.
class UserAsset < ActiveRecord::Base
belongs_to :asset
belongs_to :user
end
class Asset < ActiveRecord::Base
has_many :user_assets
has_many :users, :through => :user_assets
end
class User < ActiveRecord::Base
has_many :user_assets
has_many :assets, :through => :user_assets
end
Я попытался установить область по умолчанию для Asset, а также некоторые условия для отношения имеет много (user_assets), но rails не может рассмотреть объединение в таблице Assets. т.е. Неизвестный столбец «asset.live» в «где пункт». Пытаясь добиться следующего:
@active_user_assets = current_user.user_assets #only where assets.active = true
Так, как мне использовать условия или границы для достижения этой цели? Мне нужен объект user_asset, потому что он содержит информацию о релевантных отношениях.
Заранее спасибо!