【问题标题】:Check_box_tag in rails persist through page loadRails 中的 Check_box_tag 在页面加载期间持续存在
【发布时间】:2015-03-14 02:26:24
【问题描述】:

我有一个 Rails 3.2.20 应用程序,我将几个搜索查询/范围堆叠在一起,这些查询/范围在视图中作为参数出现。

我的一切正常,所以当我在 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 的语法不正确。我想弄清楚如何在check_box_tag 中使用selected,类似于我在上一个示例中的select_tag 中使用该复选框的方法。

任何帮助将不胜感激。

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 其实这是个错误。并且使用.try(:unbilled) 会导致无方法错误。你有更合适的答案吗?
    【解决方案2】:

    您可以使用参数来设置值

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-28
      • 1970-01-01
      • 2014-01-17
      • 2011-02-03
      相关资源
      最近更新 更多