RubyonRails:使用button_to增加scaffold中对象的值



我有一个生成篮球队表的脚手架。我想在表格中实现一个按钮,增加一支球队的胜利次数,增加另一支球队失利的次数。默认情况下,在控制器中,两者都设置为0。我应该在控制器或视图中实现一个方法(add_wins和add_losse(吗?如果是的话,会是什么样子?非常感谢。这是视图中表格正文的代码:

<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 %>

这不是一个完全复制粘贴的答案,但我会尝试解释基础知识,所以希望您可以自己找到整个解决方案。

首先,我建议您不要实现单独的add_winsadd_losses方法,如下所示:

  1. 干扰控制器过多
  2. 不要很好地处理连接问题/重新加载(假设您丢失了0,单击add,呈现响应时出现问题,计数器已更新为1,但用户返回到上一页,再次看到0并再次单击add,您最终会使用2而不是1

相反,坚持使用具有适当参数的标准update操作。

以下是button_to的文档,您必须设置正确的methodparams。您的params需要包含输赢的下一个值和团队id。此外,您可能希望验证是否有人试图发送输赢的任意值。您要使用的methodput

相关内容

  • 没有找到相关文章

最新更新