【问题标题】:Rails, uninitialized constant Faraday::FlatParamsEncoder in sunspot solrRails,太阳黑子 solr 中未初始化的常量 Faraday::FlatParamsEncoder
【发布时间】:2017-06-13 13:55:12
【问题描述】:

我正在使用 rails 4 和 sunspot solr,当我将参数传递给控制器​​以执行搜索时,我收到 未初始化的常量 Faraday::FlatParamsEncoder 错误

我按照https://github.com/sunspot/sunspot下的步骤操作

我的模型如下所示,

Post.rb

class Post < ActiveRecord::Base
  belongs_to :user

  searchable do
     text :title, :description
  end
end

我的控制器操作是 blogs_controllers.rb

def index
  @search = Post.search do
    fulltext params[:search]
  end
  @results = @search.results
end

表格如下,

<form action="<%= posts_search_path %>" method="GET" role="Search">
  <input type="text" name="search" placeholder="Search by post title" required="required">
  <input class="btn btn-default" type="submit" value="Search!">
</form>

不知道为什么会出现这个错误。

【问题讨论】:

  • 分享来自控制台和回溯的确切错误
  • 你是在安装 gem 之后还是在打包之后重启了 rails server?
  • 是的,我确实重新启动了 rails 服务器和 sunspot_solr 服务器,尽管问题仍然存在,@Aashish
  • SOLR 请求 (38.5ms) [ path=select parameters={fq: ["type:Post"], q: "stone", fl: "* score", qf: "title_text description_text" , defType: "edismax", start: 0, rows: 30} ] Completed 500 Internal Server Error in 127ms NameError - 未初始化常量 Faraday::FlatParamsEncoder: @Md.法尔汉门

标签: ruby-on-rails sunspot-rails faraday


【解决方案1】:

在 rsolr 中使用 Faraday::FlatParamsEncoder 是 added in version 2.0.0。 Faraday::FlatParamsEncoder 是 added to faraday in version 0.9.0。 rsolr does not specify a minimum version of faraday。我创建了一个pull request 来解决这个问题。

要么将 faraday 升级到 0.9.0 或更高版本,要么将 rsolr 降级到 2.0.0 之前的版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-23
    • 1970-01-01
    相关资源
    最近更新 更多