我有以下型号
class Product < ActiveRecord::Base
belongs_to :sub_category
end
class SubCategory < ActiveRecord::Base
belongs_to :category
has_many :products
end
class Category < ActiveRecord::Base
has_many :sub_categories , -> { where("activate = 1") }
end
我需要索引我的产品表。我需要使用类别名称(在类别表中)和子类别名称(在子类别表中)进行搜索
ThinkingSphinx::Index.define :product , :with => :active_record do
indexes description
indexes name
indexes merchant_name
indexes sub_category(:sub_category) , :as => :sub_category_name
indexes category(:name) , :as => :cat_name
has sub_category_id
end
类别(:名称)失败。子类别工作正常。 请问有人请帮忙。我试过sub_category.category(:name)但那也失败了
错误消息
错误:index&#39; link_core&#39;:sql_range_query:你的错误在 SQL语法;查看与MySQL服务器对应的手册 正确的语法版本,以便在AS&#39; AS cat_name,products.id AS附近使用 sphinx_internal_id,&#39;产品&#39; AS`sphinx_internal _&#39;在第1行 (DSN = MySQL的://根:*** @本地:3306 / xxxx_dev_phase4)
答案 0 :(得分:1)
name
应该作为链式方法传递,而不是作为参数传递
indexes sub_category.category.name , :as => "category_name"
感谢主人帕特帮助我