Я пытаюсь присвоить баллы ученикам в моем приложении RailsУ них есть параметр под названием: очки.Я хочу обновить количество баллов, которое они набрали, основываясь на пользовательском вводе учителя - они могут дать им 1 балл, 2 балла, 5 баллов и т. Д. Я использую приращение!но я могу выбрать только 1 значение, чтобы дать им.Я написал заявление if, которое не работает.Этот код работает:
<%= form_for student do |f| %>
<%= f.submit "+ 1" %>
<% end %>
<%= form_for student do |g| %>
<%= g.submit "+ 2" %>
<% end %>
и контроллер:
def update
@student = Student.find(params[:id])
@student.increment!(:points, 1)
redirect_to '/pages/points'
end
, но он может увеличиваться только на 1 пункт (обе кнопки увеличиваются на 1).Итак, я написал это выражение if и включил скрытые поля для обновления: количество параметров:
<%= form_for student do |f| %>
<%= f.hidden_field :amount, :value => 1 %>
<%= f.submit "+ 1" %>
<% end %>
<%= form_for student do |g| %>
<%= g.hidden_field :amount, :value => 2 %>
<%= g.submit "+ 2" %>
<% end %>
и контроллер:
def update
@student = Student.find(params[:id])
if :amount == 1
@student.increment!(:points, 1)
redirect_to '/pages/points'
elsif :amount == 2
@student.increment!(:points, 2)
redirect_to '/pages/points'
else
@student.increment!(:points, 3)
redirect_to '/pages/points'
end
end
, и это каждый раз возвращает 3 балла, что означает: суммане обновляется в скрытом поле.Я поступаю об этом неправильно?Есть ли лучший способ использовать приращение!изменить значения баллов, или есть другой способ обновления: сумма, так что мой оператор if будет работать?Спасибо!