我收到错误sort-by attribute 'published_at' not found
,但仅在测试环境中,即使在重建之后也是如此。
在模型中:
belongs_to :content, polymorphic: true
belongs_to :user
define_index do
indexes user.name, as: :name
has role
has user_id
has content_id
has content.published_at, as: :published_at, type: :datetime
has content.status, as: :status, type: :integer
end
rake ts:rebuild
在开发中运行正确构建索引:
# development.sphinx.conf
{
[...]
sql_attr_uint = sphinx_internal_id
sql_attr_uint = sphinx_deleted
sql_attr_uint = class_crc
sql_attr_uint = role
sql_attr_uint = user_id
sql_attr_uint = content_id
sql_attr_uint = status
sql_attr_timestamp = published_at
sql_attr_string = sphinx_internal_class
[...]
}
但是,运行RAILS_ENV=test rake ts:config
或ts:rebuild
测试环境会生成以下内容:
# test.sphinx.conf
{
[...]
sql_attr_uint = sphinx_internal_id
sql_attr_uint = sphinx_deleted
sql_attr_uint = class_crc
sql_attr_uint = role
sql_attr_uint = user_id
sql_attr_uint = content_id
sql_attr_string = sphinx_internal_class
[...]
}
这当然会导致测试环境出错:
ThinkingSphinx::SphinxError:
index content_byline_core: sort-by attribute 'published_at' not found
注意缺失status
和published_at
属性。这在过去的几个月里一直有效,但我不知道是什么导致它崩溃。
- 狮身人面像 2.0.2-beta
- 思考狮身人面像 2.0.12
- 导轨 3.2.6
- 红宝石 1.9.3