2

私には2つのモデルがあります。 1つはブランドで、もう1つはproduct_detailです。ブランドテーブルにはIDフィールドと名前フィールドがあり、product_detailsテーブルにはフィールドID、名前、価格、割引、brand_idがあります。sunspot_rails gemを使ってbelongs_toアソシエーションに検索可能なメソッドを書き込む方法

ブランドは多くのproduct_detailsを持っており、product_detailは

brand.rbのブランドに属しているように見えます:

class Brand < ActiveRecord::Base 
    has_many :product_details 
end 

とproduct_details.rb黒点を使用して検索を実行しようと

class ProductDetail < ActiveRecord::Base 
    belongs_to :Brand, :dependent=>:destroy 
end 

アムのように見えますレール。ユーザーが入力したテキストでブランド名と製品名に基づいて検索したい私はすくい黒点を実行すると

class ProductDetail < ActiveRecord::Base 
    belongs_to :brands, :dependent=>:destroy 

    searchable do 
     text :name 
     text :brands do 
     brands.map(&:name) 
     end 
    end 
end 

:これを行うには、私はこのように検索方法を書かれている。このようなコードを変更した場合は

REINDEXそれはゼロクラス

のエラー未定義のメソッドマップを投げています

class ProductDetail < ActiveRecord::Base 
    belongs_to :Brand, :dependent=>:destroy 

    searchable do 
     text :name 
     text :Brand do 
     brands.map(&:name) 
     end 
    end 
end 

それは

product_detailクラスのエラー未定義のメソッドのブランドを投げています

どうすればいいですか?

答えて

3

それは

belongs_to :brand, :dependent=>:destroy 

する必要がありますが、あなたは、あなたがそれに関連付けられたproduct_detailを削除するたびにブランドを削除してもよろしいですか。

いずれの場合も、検索可能なブロックは、その後

searchable do 
    text :name 
    text :brand do 
    brand.name 
    end 
end 

のように記述しなければならない、私は助けること、願っています。

+0

いいえいいえ、商品を削除してもブランドを削除したくありません。その私の間違いは、私はブランドモデルの代わりにproduct_detailsモデルを破壊することに依存していました。私は間違いを訂正します –

+0

ありがとうございました。私の問題は解決されました。 –

関連する問題