Ruby on Rails: Увеличьте значение объекта в эшафот с помощью button_to - PullRequest
0 голосов
/ 25 ноября 2018

У меня есть эшафот, который создает таблицу баскетбольных команд.Я хочу реализовать кнопку в таблице, которая увеличивает количество выигрышей для команды и еще одну для потерь. По умолчанию в контроллере обе установлены на 0.Должен ли я реализовать метод в контроллере или в представлении (add_wins и add_losses)?Если так, как это будет выглядеть?Благодарю вас.Это код тела таблицы в представлении:

<tbody>
<% @teams.each do |team| %>
  <tr>
    <td><%= team.Name %></td>
    <td><%= team.Color %></td>
    <td><%= team.Players %></td>
    <td><%= team.Wins %></td>
    <td style="font-size: 20px"><%= button_to '+', method: :add_wins %></td> <!-- The method add_wins doesn't exist. -->
    <td><%= team.Losses %></td>
    <td style="font-size: 20px"><%= button_to '+',method: :add_losses %></td> <!-- The method add_losses doesn't exist. -->
    <td><%= link_to 'Show', team %></td>
    <td><%= link_to 'Edit', edit_team_path(team) %></td>
    <td><%= link_to 'Delete', team, method: :delete, data: { confirm: 'Are you sure?' } %></td>
  </tr>
<% end %>

1 Ответ

0 голосов
/ 25 ноября 2018

Не полностью скопированный ответ, но я попытаюсь объяснить основы, так что, надеюсь, вы сами сможете найти решение полностью.

Прежде всего, я бы посоветовал вам нереализация отдельных add_wins, add_losses методов, таких как:

  1. Слишком много загромождения вашего контроллера
  2. Не обрабатывайте проблемы с подключением и не перезагружайте их слишком хорошо (подумайте, если у вас есть 0 потери, нажмите add, что-то не так с обработкой ответа, счетчик обновлен до 1, но пользователь возвращается на предыдущую страницу, снова видит 0 и снова нажимает add, вы 'd в конечном итоге на 2 вместо 1.

Вместо этого придерживайтесь стандартного действия update с правильными параметрами.

Здесь являютсядокументы для button_to, вам нужно будет установить правильные значения method и params. В вашем params должны быть указаны следующие значения для потерь или побед и идентификатор команды. Кроме того, вы можете подтвердить, что кто-тоне пытается отправить какое-то произвольное значение для побед или лЭМСН.method, который вы хотите использовать: put.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...