Часть URL :controller
получена из текущего контроллера.Так что это зависит от того, по какому URL вы сейчас находитесь.Таким образом, ответ - да, вам нужно указать контроллер, если вы просматриваете его на контроллере, отличном от video_votes
.Но лучший способ сделать это - использовать метод video_votes_path
для генерации пути.
Для второго вопроса вы можете передать параметры в виде хэша.Вот пример:
<%= button_to "+1", video_votes_path(
:video_vote => {:video_id => @video, :type => 'up'}),
:remote => true) %>
Тогда в вашем контроллере вы можете иметь обычное:
def create
@video_vote = VideoVote.new(params[:video_vote])
...
end