在我的应用程序主页中,用户可以使用表单从列表中进行选择。
表单收集选项并将其发送到控制器自定义操作,其唯一目标是更新用户的属性choice
:
<% form_tag({controller: "weekly_selections", action: "update_choice"}) do %>
<div><%= hidden_field_tag :user_choice, book.title %></div>
<%= submit_tag("choose", class: "btn btn-primary btn-sm") %>
<% end %>
我创建了一个WeeklySelection
控制器和一个自定义update_choice
操作:
class WeeklySelectionsController < ApplicationController
def update_choice
if current_user.choice_count < 10
user_choice = params[:user_choice]
current_user.update_attribute(:choice, user_choice)
current_user.increment!(:choice_count)
flash[:success] = 'Your choice has been recorded'
redirect_to root_url
else
flash[:warning] = "Attention! You already made 10 choices"
redirect_to root_url
end
end
end
如何测试此操作的正确行为,或者该操作是否实际有效?