我正在使用 Rails 和 Activerecord 并尝试在我的视图中将相关表中的一些数据合并在一起,这是我的模型:
class Report < ActiveRecord::Base
has_many :votes
end
class Vote < ActiveRecord::Base
belongs_to :reports
end
class User < ActiveRecord::Base
has_many :votes
end
每个投票都有一个用户和一个报告。
在我看来,我需要以下内容,希望尽可能简单:
- 所有用户对每个报告的总投票数
- 如果用户对特定报告进行了投票,则为真/假
现在,我对 ActiveRecord 查询的基本理解只需要我为报告和当前创建一个助手user
,而不是查询是否存在report
计算 a 的所有用户的总票数也是report
如此:
控制器
def index
#this is where I need some help to get the related information into a single
#object
@reports = Report.where('...')
end
看法
<% @reports.each do |report| %>
<% if(hasVoted(@current_user.id, report.id)) %>
<!-- display the 'has voted html' -->
<% end %>
<% end %>
帮手
def hasVoted(current_user_id, report_id)
if(Vote.exists?(:user_id => current_user_id, :report_id => report_id))
true
else
false
end
end
希望这能让您对帮助有所了解……谢谢!