1

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

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

我认为每当用户选中/取消选中复选框时都需要保存最新值,但不知道如何。

我需要使用haml和ruby来做到这一点,没有javascript等。

4

2 回答 2

1

为了完整起见。

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

于 2013-02-05T07:02:31.040 回答
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)
于 2013-02-01T07:34:12.343 回答