ruby-on-rails - 思考 sphinx 无法配置开发配置

标签 ruby-on-rails thinking-sphinx

我安装了think sphinx,运行 rake ts:index 后,无法配置开发文件。文件已创建,但它是空的。

Generating configuration to /Users/lexi87/dating/config/development.sphinx.conf
rake aborted!
undefined method `type' for nil:NilClass
/Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/thinking-sphinx-3.0.0/lib/thinking_sphinx/active_record/attribute/type.rb:64:in `type_from_database'
/Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/thinking-sphinx-3.0.0/lib/thinking_sphinx/active_record/attribute/type.rb:17:in `type'
/Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/thinking-sphinx-3.0.0/lib/thinking_sphinx/active_record/attribute.rb:4:in `type'
/Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/thinking-sphinx-3.0.0/lib/thinking_sphinx/active_record/attribute/sphinx_presenter.rb:30:in `sphinx_type'
/Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/thinking-sphinx-3.0.0/lib/thinking_sphinx/active_record/attribute/sphinx_presenter.rb:18:in `collection_type'
/Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/thinking-sphinx-3.0.0/lib/thinking_sphinx/active_record/sql_source.rb:107:in `block in prepare_for_render'
/Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/thinking-sphinx-3.0.0/lib/thinking_sphinx/active_record/sql_source.rb:104:in `each'
/Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/thinking-sphinx-3.0.0/lib/thinking_sphinx/active_record/sql_source.rb:104:in `prepare_for_render'
/Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/thinking-sphinx-3.0.0/lib/thinking_sphinx/active_record/sql_source.rb:61:in `render'
/Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/riddle-1.5.6/lib/riddle/configuration/index.rb:29:in `block in render'
/Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/riddle-1.5.6/lib/riddle/configuration/index.rb:29:in `collect'
/Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/riddle-1.5.6/lib/riddle/configuration/index.rb:29:in `render'
/Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/thinking-sphinx-3.0.0/lib/thinking_sphinx/core/index.rb:48:in `render'
/Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/riddle-1.5.6/lib/riddle/configuration.rb:39:in `block in render'
/Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/riddle-1.5.6/lib/riddle/configuration.rb:39:in `collect'
/Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/riddle-1.5.6/lib/riddle/configuration.rb:39:in `render'
/Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/thinking-sphinx-3.0.0/lib/thinking_sphinx/configuration.rb:81:in `render'
/Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/thinking-sphinx-3.0.0/lib/thinking_sphinx/configuration.rb:87:in `block in render_to_file'
/Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/thinking-sphinx-3.0.0/lib/thinking_sphinx/configuration.rb:87:in `render_to_file'
/Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/thinking-sphinx-3.0.0/lib/thinking_sphinx/rake_interface.rb:4:in `configure'
/Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/thinking-sphinx-3.0.0/lib/thinking_sphinx/rake_interface.rb:31:in `index'
/Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/thinking-sphinx-3.0.0/lib/thinking_sphinx/tasks.rb:9:in `block (2 levels) in <top (required)>'
/Users/lexi87/.rvm/gems/ruby-2.0.0-p0/bin/ruby_noexec_wrapper:14:in `eval'
/Users/lexi87/.rvm/gems/ruby-2.0.0-p0/bin/ruby_noexec_wrapper:14:in `<main>'
Tasks: TOP => ts:index

我不确定这是否与我的indexs文件夹下的user_index.rb有关。

ThinkingSphinx::Index.define :user, :with => :active_record do
  # fields
  indexes content
  indexes user.name, :as => :user, :sortable => true

# attributes
  has user_id, created_at, updated_at, ethnicity, religion

end

这是我的thinking_sphinx.yml 文件:

development:
  mysql41: 9312
test:
  mysql41: 9313
production:
  mysql41: 9312

任何帮助将不胜感激。

最佳答案

此错误虽然不清楚,但是由于您的属性引用之一不太正确...如果您正在为用户模型建立索引,那么我猜它没有名为 user 的关联 -所以, user_id 应该只是 id ,而 user.name 应该只是 name :

ThinkingSphinx::Index.define :user, :with => :active_record do
  # fields
  indexes content
  indexes name, :as => :user, :sortable => true

  # attributes
  has id, created_at, updated_at, ethnicity, religion
end

关于ruby-on-rails - 思考 sphinx 无法配置开发配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18112095/

相关文章:

ruby-on-rails-3 - 对 has_one 关联中的字符串字段进行 Sphinx 过滤的思考

Mysql2::错误:无法连接到 '127.0.0.1' 上的 MySQL 服务器 (61)

ruby-on-rails - 搜索 "/"时出现 Thinking Sphinx 错误

ruby-on-rails - 为什么Cent OS 6、PostgreSQL 9.4和Rails 3.2下database.yml必须删除 "host:localhost",否则报错: Ident authentication failed?

ruby-on-rails - 无法推送到 heroku - 缺少 sqlite3.h

ruby-on-rails - 部署到 Heroku 后,无法通过 Devise 登录

ruby-on-rails - 在不重定向的情况下调用 ruby​​ 操作/方法

ruby-on-rails - Ruby 方法和可选参数

css - rails 和 CSS : best to have css for each controller or all in application. CSS?

ruby-on-rails - Thinking Sphinx delta indexing - 增量索引没有更新