Rails建模与自定义名称的关系

时间:2011-08-08 02:43:10

标签: ruby-on-rails ruby-on-rails-3

修改

简单的关系,但我遇到了让它发挥作用的问题。有一个用户。用户有许多赏金。用户通过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

2 个答案:

答案 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