我在获取has_many
关联对象时面临ids
关联的不可预测行为。模特:
class Dealer < AR::Base
# attributes :id, :dk_id and so on
with_options class_name: 'Campaign', primary_key: :dk_id, foreign_key: :dk_specific_id do |assoc|
assoc.has_many :campaigns
end
end
class Campaign
# attributes :id, :dk_specific_id and so on
end
我想为dealer
获取'campaign_ids'。它返回一个错误。我不明白为什么。
dealer = Dealer.first
dealer.campaigns # => return a list of campaigns to me
dealer.campaign_ids # => exception
ActiveRecord::StatementInvalid - PG::UndefinedColumn: ERROR: column campaigns.dk_id does not exist
LINE 1: SELECT "campaigns".dk_id FROM "camp...
^
: SELECT "campaigns".dk_id FROM "campaigns" WHERE "campaigns"."dk_specific_id" = $1
请帮助我了解如何使此方法有效。我无法理解为什么这种方法要求campaigns
表格dk_id
,因为它应该只询问id
,不是吗?
已更新
dk_id
是主键,其值可以是abc1
。因此,该经销商的广告系列有dk_specific_id=abc1