保持在HAML中选中复选框

ske*_*ver 3 haml ruby-on-rails

我在HAML文档上有一些复选框,它应该更改单击"刷新"按钮时显示的结果.这样可以正常工作,但是当页面重新加载时,检查的框都会再次被取消选中.

如何重新配置​​HAML以在页面视图中保持复选框选中状态?

= form_tag movies_path, :method => :get do
  Include:
  - @all_ratings.each do |rating|
    = rating
    = check_box_tag "ratings[#{rating}]", '1', true
  = submit_tag 'Refresh'
Run Code Online (Sandbox Code Playgroud)

我还指定默认情况下应选中复选框,但在加载页面时不会检查它们...

sup*_*a32 5

这将完成你想要的:

    = form_tag movies_path, :method => :get do
      Include:
      - @all_ratings.each do |rating|
        = rating
        = check_box_tag "ratings[#{rating}]", rating, if params[:ratings]; params[:ratings].include?(rating) end
    = submit_tag 'Refresh'
Run Code Online (Sandbox Code Playgroud)

params[:ratings]实例在调用后仍然存在,因此您可以使用它来标记之前用户单击的框.