Terminal
ruby script/generate model Vote
Migration
class CreateVotes < style="font-weight: bold;">Terminal
rake db:migrate
Model
class Info < style="font-weight: bold;">Views/layouts/application.html.erb
<%= javascript_include_tag :defaults %>
Views/show.html.erb
Controller
def vote
@info = Info.find(params[:id])
@user = User.find(session[:user_id])
@info.votes.create(:user => @user)
end
Views/infos/vote.rjs
page.replace_html 'vote_score', "Votes: #{@info.votes.count}"
page[:vote_score].visual_effect :highlight
Vote Once
Controller
def vote
@info = Info.find_by_nickname(params[:id])
@user = User.find(session[:user_id])
if Vote.exists?(@info, @user)
flash[:notice] = 'One vote per user.'
else
@info.votes.create(:user => @user)
end
respond_to do |format|
format.html { redirect_to @info }
format.js
end
end
private
def Vote.exists?(info, user)
not find_by_info_id_and_user_id(info, user).nil?
end
0 comments:
Post a Comment