生成错误:
未定义的方法`inject'为nil:NilClass
尽管有以下讨论: https://github.com/pat/thinking-sphinx/issues/408#issuecomment-12593562 似乎我已经为我的基于postgre的应用程序正确安装了mySQL和sphinx
MacBook-Pro-di-jerdvo:saim jerdvo $ brew安装sphinx --mysql
错误:已安装sphinx-2.0.3
MacBook-Pro-di-jerdvo:saim jerdvo $ brew install mysql
错误:mysql-5.5.20已安装
gemfile包含
gem'trail','3.2.13'
宝石'pg','0.14.1'
gem'mysql2','0.3.12b5'
宝石'思考 - 狮身人面像','3.0.3'
正在捕获搜索参数
{“utf8”=>“✓”,“staticpage_search”=> {“terms”=>“墨西拿”}}
搜索模型正在运行代码
def search(options = {})
extra_conditions = options.delete(:conditions) || {}
order = options.delete(:order) || '@weight DESC'
extra_with = options.delete(:with) || {}
with = search_with.merge(extra_with)
conditions = search_conditions.merge(extra_conditions)
base_class.search sanitized_terms, :conditions => conditions, :with => with, :page => page, :per_page => per_page, :sort_mode => :extended, :order => order, :retry_stale => true, :match_mode => :extended
end
def sanitized_terms
@terms ||= ""
sanitize(@terms)
end
def sanitize(s)
if s.respond_to? :gsub
s.gsub("/", "\\/")
else
s
end
end
答案 0 :(得分:0)
有两点需要注意:
答案 1 :(得分:0)
需要更新Sphinx。但是,还需要以下内容来执行索引:
brew uninstall sphinx
gem uninstall mysql2
gem uninstall thinking-sphinx
brew upgrade sphinx
brew install sphinx --mysql --pgsql
然后重新安装mysql2和思考sphinx ......
注1: 依赖性可能是一个问题。 mysql2需要0.3.12b4最小AND pg需要0.15.1
gem 'mysql2', '0.3.11'
gem 'pg', '0.14.1'
注2:
brew update
也会产生错误。物质:
此gem编译为5.5.20,但客户端库为5.6.10
5.6.10从未被要求进行升级,下载或其他任何事情(系统在mysql初始安装后从未被触及)。我的结论是:brew很混乱,并且安装了更新的配方版本。针对mysql服务器调整的database.yml是Unstartable。测试mysql支持是无法验证的。
brew uninstall mysql
brew upgrade mysql
brew install mysql
mysql.server start
让mySQL运行。此时,gem被编译为错误的早期版本。
gem uninstall mysql2
我选择删除所有版本。
bundle install
rake db:create:all
rake db:migrate
创建并同步mysql数据库
rake ts:configure
rake ts:index
两人跑了。