rails中的Check_box_tag通过页面加载持续存在

时间:2015-01-15 16:06:45

标签: ruby-on-rails forms ruby-on-rails-3 search checkbox

我有一个Rails 3.2.20应用程序,我将多个搜索查询/范围堆叠在一起,在视图中显示为params。

我已经完成了所有工作,因此当我在select_tag中进行选择时,将继续使用以下内容重新加载页面:

<%= select_tag "search[attendant]", options_from_collection_for_select(Medic.order(:medic_name), :medic_name, :medic_name, selected: params[:search].try(:[], :attendant)), prompt: "Select Attendant" %>

我正在尝试使用check_box_tag执行其他搜索条件,如下所示:

<%= check_box_tag "search[unbilled]", selected: params[:search].try(:[], :unbilled) %>

当我勾选该框时,它会将unbilled的搜索参数键传递给模型,并将我想要的记录范围正确。问题是,当我通过分页点击其他页面或在点击提交/搜索后重新加载页面时,复选框将不会保留。

我非常确定check_box_tag的语法不正确。我想知道如何在selected中使用check_box_tag与我之前示例中select_tag中的{{1}}类似,以保留复选框刻度。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

为什么使用params[:search].try(:[], :unbilled)。如果:[]不是返回值,它将返回nil。

如果parms [:search]上有未启用的方法,请使用params[:search].try(:unbilled),否则请使用其他方式将值传递给所选属性。

答案 1 :(得分:0)

您可以使用参数设置值

value="#{params[:checkbox]}" //只是一个例子

页面第一次呈现它默认为false,第二次重新加载表单时,它应该用params填充值。