3

我正在從MetaSearch gem遷移到Ransack gem以升級到Rails 3.1,並且我在搜索多態關聯時遇到了問題。現有的MetaSearch語法不適用於Ransack,但我找不到任何提及任何語法更改的文檔。或者Ransack是否支持該功能。Ransack是否支持與MetaSearch一樣的多搜索belongs_to關聯?

例如,從元搜索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) 

有沒有人知道如何做這種類型的搜索在Ransack?

回答

7

我一直在努力解決同樣的問題(雖然我的錯誤是不同的)。我覺得你的代碼需要:

<%= f.text_field :commentable_of_Article_type_body_contains %> 

注意大寫字母A

爲我工作。您可以結帳Ernie的多態關聯測試here(這是頁面上的最後一個文件)