修改
简单的关系,但我遇到了让它发挥作用的问题。有一个用户。用户有许多赏金。用户通过Bounty拥有许多BountyVotes。赏金有BountyVotes。为了便于阅读,我称之为BountyVotes - >在赏金课上投票。我在尝试从用户模型访问bounty_interests时收到名称错误:未初始化的常量User :: bounty_vote。
用户可以创建赏金。其他用户可以对Bounty投票。
//User class
class User < ActiveRecord::Base
has_many :bounties
has_many :bounty_interests, :through => :bounties, :source => :votes
end
//Bounty class
class Bounty < ActiveRecord::Base
belongs_to :user
has_many :votes, :class_name => :bounty_vote
end
//Bounty Vote class
class BountyVote < ActiveRecord::Base
belongs_to :bounty
end
答案 0 :(得分:2)
不得不改变两件事。首先,感谢shakerlxxv,我需要将我的通过改为复数。
has_many :bounty_interests, :through => :bounties, :source => :votes
我还必须改变引用我的班级名称的方式。
has_many :votes, :class_name => 'BountyVote'
答案 1 :(得分:1)
您的:through子句需要引用复数形式:
has_many :bounty_interests, :through => :bounties, :source => :votes