2012-04-21 4 views
0

結果:思考-スフィンクスは、検索に参加し、フィールドの値を取得し、このモデルでは

class Product < ActiveRecord::Base 
    belongs_to :category 

    define_index do 
     join category 

     indexes sku 
     indexes category.name, :as => :category_name, :facet => true 
    end 
end 

私が行うと:

products = Product.search("something") 
products[0].category_name if products.size > 0 

私はエラーを取得する:

NoMethodError: undefined method `category_name' 

どのようにすることができます修理する?

答えて

0

スフィンクスはあなたのための新しい方法を作成しません考える - あなたはそれを自分で行う必要があり、または名前だけを取得するために、標準的なRailsのアプローチを使用します:

products = Product.search 'something' 
products.first.category.name unless products.empty? 

# or add the following to your Product model: 
def category_name 
    category.name 
end 

# and then.... 
products = Product.search 'something' 
products.first.category_name unless products.empty? 
+0

私はこのようにして解決しました:Product.search( "something"、:select => "products。*、category.name AS category_name"、:joins => [:category]) – Sebtm

0

私はこの方法で解決:

Product.search("something", :select=>"products.*, category.name AS category_name", :joins=>[:category]) 
関連する問題