ActiveRecord`has_one`关联扩展方法

时间:2016-09-30 09:23:54

标签: ruby-on-rails ruby activerecord associations

我尝试将has_one关联扩展为方法:

has_one :subscription_plan, -> { where current: true } do
  def in newspaper
    where newspaper: newspaper
  end
end

并收到错误undefined method 'in' for #<SubscriptionPlan...>

但它适用于has_many

has_many :subscription_plans, -> { where current: true } do
  def in newspaper
    where(newspaper: newspaper).take
  end
end

如何使它适用于Rails 4.2.1上的has_one

1 个答案:

答案 0 :(得分:0)

通过访问has_many关联,您会收到SubscriptionPlan::ActiveRecord_Associations_CollectionProxyhas_one只会收到SubscriptionPlan个实例。

所以这里没有什么可以延伸的。

如果您要提供有关模型的更多信息,我会帮助您准确的代码。