2012-04-21 33 views
0

在這種模式下:在搜索加入域的思考 - 獅身人面像GET值導致

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( 「東西」,:選擇=> 「產品*,category.name AS CATEGORY_NAME」:加入=> [:類]) – Sebtm 2012-04-24 07:57:54

0

我以這種方式解決:

Product.search("something", :select=>"products.*, category.name AS category_name", :joins=>[:category])