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'

どうすれば修正できますか?

4

2 に答える 2

0

私はこのように解決しました:

Product.search("something", :select=>"products.*, category.name AS category_name", :joins=>[:category])
于 2012-04-24T07:59:29.587 に答える
0

Thinking Sphinx は新しいメソッドを作成しないため、自分で作成するか、標準の 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?
于 2012-04-24T02:48:01.740 に答える