如何限制价值(基于类似项目的总和)

时间:2016-06-13 15:59:21

标签: ruby-on-rails ruby ruby-on-rails-4

我正在创建一个动作跟踪器/待办事项列表,我想为每个动作项目分配点数。我想允许用户添加他们想要的任意数量的项目,但是对所有操作项目的“totalpts”总和的限制为1000.我该怎么做?

作为参考,这是我的显示代码的一部分:

<% @todo_list.todo_items.order('totalpts DESC').each do |todo_item| %>
  <% if todo_item.completed? && todo_item.created_at.strftime("%U").to_i == Date.today.strftime("%U").to_i %>
  <tr id="<%= dom_id(todo_item) %>">
    <td><%= todo_item.completed_at.strftime("%A ") %></td>
    <td><%= todo_item.content %></td>
    <td><%= todo_item.currentpts %></td>
    <td><%= todo_item.totalpts %></td>

1 个答案:

答案 0 :(得分:0)

您始终可以使用min课程中的Enum功能。

[1, 3].min
=> 1

这就是你应该寻找的东西。

[1000, calculate_points_for_action(action)].min

这应该返回两者之间的较小数字。在这种情况下,1000是给定操作可以获得的最大点数。

我还会考虑将1000放入常量。这样,您可以在以后轻松更改它,只需要在单个位置进行更改,而不必查找所有调用。