我在使用 Rails 4.0.0.beta 时收到以下错误:
NoMethodError: undefined method `primary_key_name' for #<ActiveRecord::Reflection::AssociationReflection
使用 Rails 3.2.x 时我没有遇到异常。
我将 Ruby 1.9.3-p194 用于 Rails 3.2.13 和 Rails 4.0.0.beta。
问题源于以下has_many
陈述:
class Store < ActiveRecord::Base
has_many :relationships
has_many :customers, :through => :relationships, :source => :user,
:conditions => { :relationships => { :description => "Customer" } } do
def <<(user)
proxy_association.owner.relationships.create(:description => "Customer", :user => user)
end
end
end
我有以下支持类:
class User < ActiveRecord::Base
has_one :relationship
has_one :store, :through => :relationship
end
class Relationship < ActiveRecord::Base
belongs_to :store
belongs_to :user
end
我想知道如何has_many
使用 Rails 4 友好的代码实现相同的功能?
PS 我知道我仍在使用旧式语法,并且条件哈希现在需要 proc 或 lambda,但这些不应该导致undefined method
异常。