我正在从MetaSearch gem迁移到Ransack gem以升级到Rails 3.1并且我在搜索多态关联时遇到问题.现有的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
Run Code Online (Sandbox Code Playgroud)
您可以在表单中创建一个搜索字段(这显然是从Searchlogic借来的约定):
<%= f.text_field :commentable_article_type_body_contains %>
Run Code Online (Sandbox Code Playgroud)
我正在使用这种类型的语法,它在MetaSearch中完美运行,但是对于Ransack,我的应用程序在查询参数包含此字段时抛出异常.例外是:
ActiveRecord::EagerLoadPolymorphicError (Can not eagerly load the polymorphic association :ownable)
Run Code Online (Sandbox Code Playgroud)
有谁知道如何在Ransack进行这种类型的搜索?