【问题标题】:Refining search with ransack gem使用 ransack gem 优化搜索
【发布时间】:2013-05-01 05:33:39
【问题描述】:

我正在构建一个适合移动设备的搜索,并且需要 Ransack gem 连接搜索参数,以便在手机上“点击”(或在网络浏览器中“点击”)首先搜索星期几第一次点击,然后通过第二次点击添加城市,然后添加任何搜索词或代码等。现在它搜索 4 个中的一个,但它不会让用户在没有实际输入的情况下搜索多个盒子

在不使用 JavaScript 的情况下,我能做些什么来使这些搜索仅通过“点击”连接起来吗? (就是让“city”和“day”的搜索框不可见?)一些我想到的,搞砸的,搞不定的事情:
- 防止搜索表单“清除”并唯一地从“root”搜索每个参数?
- 添加 && 以迭代添加搜索功能(最后使用 &commit=Search 吗?)

是的,我已经阅读了 ransack 文档,对此进行了广泛的研究,尝试了很多方法,但到目前为止没有任何效果。我的直觉告诉我感觉有些事情我可以做。 . .

<%= f.text_field :city_cont, placeholder: "Add City", @q.day_cont(params[:city_cont]) %>

index.html.erb

或者也许这是某种变化:

<%#= search_form_for @q, :url => request.fullpath, :method => :get, :html => { :class => 'form-search' } do |f| %>

将整个项目捐赠给 501(c)(3) 并且没有太多时间来处理它;只是想完成它。

非常感谢任何帮助/见解!

【问题讨论】:

    标签: ruby-on-rails-3 mobile ransack


    【解决方案1】:

    JavaScript 过滤是这里的理想解决方案,但如果您设置为每次点击都刷新整个页面,然后让点击的项目“保留”以供将来点击,那么您必须将当前搜索参数插入所有点击的链接。 params 哈希会有所帮助,也许是这样的助手:

    link_to LABEL, with_params_for(CODE, VALUE)
    

    def with_params_for(code, value)
      current_params = params["q"].except(code)
      "/meetings?utf8=%E2%9C%93&q[#{code}]=#{value}&commit=Search&" +
        current_params.map { |cp| "q[#{cp}]=#{params['q'][cp]}" }.join("&")
    end
    

    【讨论】:

    • 上面的代码添加到app/helpers/meetings_helper.rb。但我不确定这部分的正确语法 link_to LABEL, with_params_for(CODE, VALUE) 第 25 行来自 meeting/index.html.erb 我试过了:&lt;%= link_to "Campbell", with_params_for(city_cont: camp)%&gt;&lt;/li&gt; ` ... (:city_cont, camp)%>` ` ... ([city_cont], camp)%>` ` ... (city_cont:camp)%>` ` ... ([city_cont]=camp)%>` 没有任何效果!
    • 这取决于其他事情,但请尝试&lt;%= link_to "Campbell", with_params_for("city_cont", "camp")%&gt;&lt;/li&gt;
    • NoMethodError in Meetings#index 显示 aasj/app/views/meetings/index.html.erb 其中第 25 行出现:undefined method except' for nil:NilClass` 提取的源代码(在第 25 行附近): 25: &lt;li&gt;&lt;%= link_to "Campbell", with_params_for("city_cont", "camp")%&gt;&lt;/li&gt; 所以试图理解这意味着什么;帮助程序中的第 3 行设置为 current_params = params["q"].except(code),这意味着与 params 对象有关的某些内容未正确设置?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多