Да, button_to будет работать нормально:
<%= button_to "I've visited here", {:action => "visited", :id => @spot} %>
Сгенерирует кнопку, которая при нажатии передаст @spot в параметрах, как и ожидалось.Затем вы можете (при условии, что у вас есть метод current_user, потому что вы используете стандартную среду пользовательской модели), сделать что-то вроде этого:
def visited
spot = Spot.find(params[:id])
current_user.spots << spot
redirect_to :action => "show", :id => spot
end
Надеюсь, что это поможет.