小编dek*_*ard的帖子

Ransack是否像MetaSearch一样在搜索中支持相同的polymorhpic belongs_to关联?

我正在从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进行这种类型的搜索?

ruby-on-rails polymorphic-associations meta-search ransack

3
推荐指数
1
解决办法
2368
查看次数