diff --git a/app/controllers/debates_controller.rb b/app/controllers/debates_controller.rb index 713e8b97d..a395f9c5e 100644 --- a/app/controllers/debates_controller.rb +++ b/app/controllers/debates_controller.rb @@ -7,13 +7,16 @@ class DebatesController < ApplicationController def index if params[:tag] @debates = Debate.tagged_with(params[:tag]).order("created_at DESC") + set_voted_values @debates.map(&:id) else @debates = Debate.all.order("created_at DESC") + set_voted_values @debates.map(&:id) @featured_debates = @debates.to_a.shift(3) end end def show + set_voted_values [@debate.id] end def new @@ -40,6 +43,7 @@ class DebatesController < ApplicationController def vote @debate.vote_by(voter: current_user, vote: params[:value]) + set_voted_values [@debate.id] end @@ -55,4 +59,8 @@ class DebatesController < ApplicationController def validate_ownership raise ActiveRecord::RecordNotFound unless @debate.editable_by?(current_user) end + + def set_voted_values(debates_ids) + @voted_values = current_user ? current_user.votes_on_debates(debates_ids) : {} + end end diff --git a/app/views/debates/_votes.html.erb b/app/views/debates/_votes.html.erb index dadea65b2..ff664f725 100644 --- a/app/views/debates/_votes.html.erb +++ b/app/views/debates/_votes.html.erb @@ -1,7 +1,16 @@ +<% voted_classes = case @voted_values[debate.id] + when true + {in_favor: "voted", against: "no-voted"} + when false + {in_favor: "no-voted", against: "voted"} + else + {in_favor: "", against: ""} + end %> +