【问题标题】:Searchlogic 'OR' conditions on associated records相关记录上的 Searchlogic 'OR' 条件
【发布时间】:2011-02-14 17:01:54
【问题描述】:

Rails 2.3.5 搜索逻辑 2.3.27

我有以下型号;

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 接受“或”条件,以便按照这些思路在 Virus 和 Bacterium 模型之间进行搜索;

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”无法识别,尽管两个范围都可以在没有“or”的情况下工作。返回的输出应显示细菌名称类似于“VTEC O157”或病毒名称类似于“NOROVIRUS”的所有记录(“any”子句允许每个记录有多个名称)。

有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails searchlogic


    【解决方案1】:

    我可能是错的,但我认为这不起作用,除非使用来自同一模型的列并针对单个条件进行测试。请参阅Github issues page 进行讨论。

    IMO 最好的选择是编写自己的范围。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      • 2020-09-03
      • 1970-01-01
      • 2016-06-12
      相关资源
      最近更新 更多