Используйте button_to, чтобы создать habtm join? - PullRequest
1 голос
/ 06 июля 2010

G'day all.

В приложении Rails у меня есть 2 модели: пользователи и споты, с отношением habtm и таблицей соединений.В действии спот / шоу я могу создать форму, чтобы спросить текущего пользователя, посетил ли он это текущее место (флажок), и нажать кнопку «Сохранить», чтобы создать запись в объединяемой таблице.

Это хорошо работает (поэтому язнаю, мои модели и отношения все хорошо) однако не так уж и элегантно.Есть ли способ сделать это без необходимости использовать флажок и кнопку отправки?Желательно только с кнопкой?

Мое исследование показало, что rails button_to может это сделать, но я не могу найти рабочий пример.

Большое спасибо.

1 Ответ

5 голосов
/ 06 июля 2010

Да, 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

Надеюсь, что это поможет.

...