2011-02-14 52 views
2

的Rails 2.3.5 Searchlogic 2.3.27Searchlogic '或' 對相關記錄條件

我有以下型號;

class Outbreak < ActiveRecord::Base 
    has_many :bacterial_agents, :dependent => :destroy 
    has_many :bacteria, :through => :bacterial_agents 

    has_many :viral_agents, :dependent => :destroy 
    has_many :viruses, :through => :viral_agents 
end 

class BacterialAgent < ActiveRecord::Base 
    belongs_to :outbreak 
    belongs_to :bacterium 
end 

class Bacterium < ActiveRecord::Base 
    has_many :bacterial_agents 
    has_many :outbreaks, :through => :bacterial_agents 
end 

class ViralAgent < ActiveRecord::Base 
    belongs_to :outbreak 
    belongs_to :virus 
end 

class Virus < ActiveRecord::Base 
    has_many :viral_agents 
    has_many :outbreaks, :through => :viral_agents 
end 

目前,我試圖讓Searchlogic接受一個「OR」條件的模型病毒和細菌之間的搜索,沿着這些線路;

params[:search] = {"bacterial_agents_bacterium_name_like_any" => "VTEC O157", "viral_agents_virus_name_like_any" => "NOROVIRUS"} 

@search = Outbreak.search(params[:search]) 

範圍「_or_viral_agents_virus_name_like」無法識別儘管這兩個領域沒有「」工作。返回的輸出應該顯示細菌名稱類似於「VTEC O157」或病毒名稱與「NOROVIRUS」類似的所有記錄(「any」子句允許每個名稱都有多個名稱)。

任何想法?

回答

0

我可能是錯的,但我不認爲這有效,除非使用相同模型的列和測試單個條件。有關討論,請參閱Github issues page

您最好的選擇是寫出您自己的範圍。