0

Rails アプリでの検索に pg_search gem を使用しています。私のアプリの主なモデルは次のとおりです。

class Book < ActiveRecord::Base
  include PgSearch
  pg_search_scope :search_everywhere, against: [:author, :title, :description]
end

それは完璧に機能しました

@books = Book.search_everywhere(params[:search])

BooksController の index アクションで。次に、gem 'globalize' を追加しました。

  translates :title, :author, :publisher, :description, :fallbacks_for_empty_translations => true

そして今、検索は機能していません。

Book.search_everywhere(params[:search])

フィールドが見つかりません。globalize gem で pg_search gem を使用した人はいますか?

4

1 に答える 1

0

私は正しい解決策を見つけました: Gem 'globalize' は新しいテーブル "book_translations" を作成しました。したがって、このテーブルで検索する必要があります。

#book.rb
class Book < ActiveRecord::Base
  include PgSearch
  has_many :book_translations
  translates :title, :author, :publisher, :description, :fallbacks_for_empty_translations => true
  pg_search_scope :search_everywhere, :associated_against  => {:book_translations => [:title, :author, :description]}
end

#book_translation.rb
class BookTranslation < ActiveRecord::Base
  belongs_to :book
end
于 2015-03-14T22:23:29.803 に答える