Я перехожу с драгоценного камня MetaSearch на драгоценный камень Ransack для обновления до Rails 3.1, и у меня возникают проблемы с поиском полиморфных ассоциаций. Существующий синтаксис MetaSearch не работает для Ransack, но я не смог найти никакой документации, в которой бы упоминались какие-либо изменения синтаксиса. Или поддерживается ли эта функция в Ransack.
Например, со страницы github MetaSearch, учитывая следующие классы:
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)
Кто-нибудь знает, как сделать этот тип поиска в Ransack?