Контроллер
class VideoVotes < ApplicationController
...
def create
@vote = VideoVote.new(params[:video_vote])
@vote.user = current_user
@vote.save
end
# OR if you want
def create
# you can use params[:video_id] instead of params[:video_vote][:video_id]
# but you should specify it in your view
@video = Video.find(params[:video_vote][:video_id])
@vote = @video.video_votes.new
@vote.user = current_user
@vote.save
end
..
end
Магия AJAX, /app/viwes/video_votes/create.js.erb
Я буду использовать для этого jQuery, поэтому посмотрите, как его установить
$("#votes").html("Votes: <%= @vote.video.video_votes.size %>")
# or with @video variable
$("#votes").html("Votes: <%= @video.video_votes.size %>")
Вид:
<%= @video.description or whatever %>
<p id='votes'>Votes: <%= @video.video_votes.size %></p>
<p><%= link_to "+1", video_votes_path('video_vote[video_id]' => @video.id), :method => :post, :remote => true %></p>
Вот и все. Здесь могут быть некоторые опечатки