【发布时间】:2021-05-13 03:35:08
【问题描述】:
我有两个模型
class Campaign < ApplicationRecord
has_many :ads
end
class Ad < ApplicationRecord
belongs_to :campaign
belongs_to :platform
validates :platform, uniqueness: { scope: :campaign }
end
基本上,在一个广告系列中,我不能有两个广告属于同一个平台。
我想要实现的是达到一种干净的方式来实现一个范围来检索每个平台的广告。 示例:
Campaign.find(1).facebook
或
Campaign.find(1).ads.facebook
将返回此活动的唯一 Facebook 广告。
应该在广告系列模型或广告模型上实施此范围,您将如何实施?
感谢所有想法。谢谢!
【问题讨论】:
-
平台列表是硬编码的吗?还是您希望方法是动态的?
-
@SiimLiiser 它们是动态的并存储在数据库中。但是,如果您对硬编码后的操作有什么建议,请继续!
标签: ruby-on-rails postgresql activerecord