Ссылка Rails, которая обновляет целое число в БД

#ruby-on-rails #model-view-controller

#ruby-on-rails #model-view-controller

Вопрос:

В моей таблице есть столбец, который является целым числом. Я пытаюсь создать ссылку в своем приложении, которая помещает определенное целое число в этот столбец.

т.е. :

Пользователь щелкает ссылку с надписью 0 => запись в БД устанавливает запись в 0

Пользователь нажимает ссылку с надписью 1 => запись в БД устанавливает запись в 1

И т.д. . . .

В ПРЕДСТАВЛЕНИИ:

 <%= link_to "0", 
     {:controller => "application", 
      :action => 'rate_app'}, 
      :class => "rate_btn", 
      :method=> :put 
%>
  

В КОНТРОЛЛЕРЕ:

 def rate_app(current_user, rating)
  current_user.nps_rating = rating
  if current_user.save
    redirect_to mypage_path
  end
end
  

Кто-нибудь видит конфликт / путаницу в коде? Я получаю сообщение об ошибке.

Комментарии:

1. Я также не знаю, в чем вопрос. Также странно использовать контроллер приложения напрямую. Обычно вы создаете свои собственные контроллеры, специфичные для модели. Более «рельсово» использовать ресурсы restful, если это применимо.

2. Я предполагаю, что мой вопрос касается того факта, что приведенный выше код не работает. Я получил сообщение об ошибке.

3. Любой шанс, возможно, намекает на то, что сказала «ошибка»…

Ответ №1:

Если вы добавляете информацию в свою БД, это должно быть сделано через POST. Ссылки — это ПОЛУЧЕНИЕ. С учетом сказанного, я бы посоветовал взглянуть на button_to, чтобы решить эту проблему.

http://apidock.com/rails/ActionView/Helpers/UrlHelper/button_to