我已经为客户创建了一个问题,就像StackOverflow一样。我不是想实现某种点数系统(比如SO声望)。我试图通过关联(我认为设置正确)获得了某些记录数。主要是我试图得到用户答案的票数。这是一个例子。试图通过多个协会获得计数
在/views/questions/show
页面我通过调用部分_answer.html.erb
列出了该问题的所有答案。每个答案都可以通过简单地做answer.user.username
来获取answer.user信息(用户名,电子邮件等)。我想显示一个徽章,如格式一些总点计算。所以如果User A
回答了Question A
,在User A
的回答旁边,我想显示所有User A
的回答投票总数。
我能顺利拿到计数为用户解答在/views/answers/_answer.html.erb通过执行以下操作:
<%= answer.user.answers.count %>
但是当我尝试以扩展语法/协会获得所有投票数User A
的答案我得到未定义的方法错误。
<%= answer.user.answers.votes.count %>
我在这里设置了根本错误还是我错过了一些东西。
这有点让人困惑,所以让我知道你是否需要更多的细节。
UPDATE:
这里有关联:
答案
class Answer < ActivRecord::Base
belongs_to :question
belongs_to :user
has_many :votes, :dependent => :destroy
end
投票
class Vote < ActiveRecord::Base
belongs_to :answer
belongs_to :user
belongs_to :question
end
用户
class User < ActiveRecord::Base
has_many :questions, :dependent => :destroy
has_many :answers, :dependent => :destroy
has_many :votes, :through => :answers , :dependent => :destroy
end
我得到一个未定义的方法错误的投票与该行。 – bgadoci 2010-12-20 16:28:15
刚更新了这个问题。 – bgadoci 2010-12-20 16:39:56
我可能应该提到我在Rails 2.3.9中 – bgadoci 2010-12-20 17:00:15