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
各投票にはユーザーとレポートがあります。
私の見解では、次のものが必要です。できればできるだけ簡単に。
- すべてのユーザーからの各レポートの総投票数
- ユーザーが特定のレポートに投票した場合はtrue/false
今のところ、ActiveRecordクエリの基本的な理解は、レポートと現在のヘルパーuser
を作成することと、report
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
それがあなたに助けへの洞察を与えることを願っています...ありがとう!