我有一个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}}类似,以保留复选框刻度。
非常感谢任何帮助。
答案 0 :(得分:0)
为什么使用params[:search].try(:[], :unbilled)
。如果:[]
不是返回值,它将返回nil。
如果parms [:search]上有未启用的方法,请使用params[:search].try(:unbilled)
,否则请使用其他方式将值传递给所选属性。
答案 1 :(得分:0)
您可以使用参数设置值
value="#{params[:checkbox]}"
//只是一个例子
页面第一次呈现它默认为false,第二次重新加载表单时,它应该用params填充值。