即使未选择提交按钮,也会以haml获取保存复选框值

时间:2013-02-01 07:13:52

标签: ruby-on-rails checkbox haml onchange

这是去年多次讨论的SaaS(“烂土豆”)培训问题,但我似乎没有找到答案。

我有一个带有复选框的表单,用于生成散列命名评级。然后我使用params [:ratings]将最新的复选框选择传递给不同的页面。当用户提交表单时,我的代码可以正常工作。但是如果他们在没有点击提交按钮的情况下四处闲逛那么最新的值就会丢失。

我认为只要用户选中/取消选中复选框,就会保存最新值,但不知道如何。

我需要使用haml和ruby,没有javascript等。

2 个答案:

答案 0 :(得分:1)

在你的电影控制器中你有实例变量@selected_ratings,你保存所有当前的评级。

if params[:ratings] != session[:ratings] and @selected_ratings != {}
  session[:ratings] = @selected_ratings
  redirect_to :sort => sort, :ratings => @selected_ratings and return
end
@movies = Movie.find_all_by_rating(@selected_ratings.keys, ordering)

在电影索引中,您在form_tag中

= check_box_tag "ratings[#{rating}]", 1, @selected_ratings.include?(rating)

答案 1 :(得分:1)

为了完整起见。

要求是如果用户关闭网页并稍后返回,那么之前的选择应该是可用的。所以我用cookies做了它并通过了测试用例。