【问题标题】:sunspot rails, adding extra param to search block fails太阳黑子轨道,向搜索块添加额外参数失败
【发布时间】:2012-02-06 07:33:09
【问题描述】:

尝试通过使用 Solr 的 Sunspot Gem 实现搜索。全文搜索工作正常,但添加额外的搜索参数返回零结果。红色所有文档但无济于事我没有看到我的错误,如果有的话在下面的代码中。关于如何解决这个问题的任何建议?我重新索引了现有记录。

ProfilesController#index

@search = Profile.search do

      fulltext params[:search]

      if params[:search].present?
        fulltext params[:description] do
          highlight :description
        end
      end

      if params[:gender].present?
        with :gender
      end
      paginate(:page => params[:page], :per_page => 2)
    end

    @profiles = @search.results

profiles.rb 模型

searchable do
    text :description
    string :gender 
end

我的搜索表单:

= simple_form_for profiles_path, :method => :get  do |f|

  = text_field_tag :search, params[:search]  << this works
  = text_field_tag :gender, params[:gender]  << adding this line returns 0 result

参数性别可以是“男性”或“女性”,不带引号此参数也由表单提交。

【问题讨论】:

  • 您是否重新索引您的对象? bundle exec rake sunspot:solr:reindex
  • 忘了说,是的,我确实重新索引了所有仍然无济于事

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 sunspot sunspot-solr


【解决方案1】:

试试这个

if params[:gender].present?
      with :gender,  params[:gender]
  end

并使用选择标签

<%= select_tag 'gender', options_for_select([['Male', 'male'], ['Female', 'female']]), :prompt => 'Select Gender' %>` 

【讨论】:

  • 没有用。我清理了所有表单,只留下了 2 个选项,1 个用于全文搜索,1 个用于性别,也从块中删除了所有其他搜索选项。似乎我的表格无效,如果我只使用 :gender, "male" 它可以正常工作。不知道到底出了什么问题
  • 索引时它们是 1/0 还是男性/女性。
  • 有男性和女性 我将问题归结为 {:params=>"[[\"Male\", :male], [\"Female\", :female]]" } 在 params[:gender] 中发送,而不仅仅是选择的项目,我如何根据选择的内容获得“男性”或“女性”?
  • 使用 select_tag '选择性别' %> 您能否验证一下该性别字段在该特定表中存储的内容?
  • DeatHammer:确实做到了!发现它通过了完整的选择框并找到了选择标签,但你在第一个;)唯一的问题是我使用这样的代码“= f.select:gender,gender,:prompt => t(:choose,:scope => :forms), :required => false " 其中 Gender 是翻译字符串的辅助函数,我们可以解决这个问题吗?我也使用 simple_form 似乎不支持 select_tag 的辅助方法我想我必须重写它以支持 select_tag 或找到解决方法。但是这个问题本身就解决了,谢谢!引起了一些头痛;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多