Rails 3.1にアップグレードするために、MetaSearchgemからRansackgemに移行していますが、ポリモーフィックな関連付けの検索で問題が発生しています。既存のMetaSearch構文はRansackで機能していませんが、構文の変更について言及しているドキュメントは見つかりませんでした。または、この機能がRansackでサポートされているかどうか。
たとえば、MetaSearch githubページから、次のクラスを指定します。
class Article < ActiveRecord::Base
has_many :comments, :as => :commentable
end
class Post < ActiveRecord::Base
has_many :comments, :as => :commentable
end
class Comment < ActiveRecord::Base
belongs_to :commentable, :polymorphic => true
validates_presence_of :body
end
次のようにフォームに検索フィールドを作成できます(これは明らかにSearchlogicから借用した規則です)。
<%= f.text_field :commentable_article_type_body_contains %>
私はこのタイプの構文を使用しています。これはMetaSearchで完全に機能しますが、Ransackを使用すると、クエリパラメーターにこのフィールドが含まれている場合にアプリケーションが例外をスローします。例外は次のとおりです。
ActiveRecord::EagerLoadPolymorphicError (Can not eagerly load the polymorphic association :ownable)
誰かがランサックでこのタイプの検索を行う方法を知っていますか?