我有一个记录调用的应用程序。每个呼叫可以有多个与之关联的单位。我的应用程序的一部分有一个报告部分,它基本上只针对不同的标准对Call模型进行查询。我已经想出了如何编写一些我想要的范围,并将它们链接到我的报告搜索功能的结果。但我无法弄清楚如何用“单元”进行搜索。下面是从我的代码相关摘录:有关联和ActiveRecord的范围
Call.rb
has_many :call_units
has_many :units, through: :call_units
#Report search logic
def self.report(search)
search ||= { type: "all" }
# Determine which scope to search by
results = case search[:type]
when "open"
open_status
when "canceled"
cancel
when "closed"
closed
when "waitreturn"
waitreturn
when "wheelchair"
wheelchair
else
scoped
end
#Search results by unit name, this is what I need help with. Scope or express otherwise?
results = results. ??????
results = results.by_service_level(search[:service_level]) if search[:service_level].present?
results = results.from_facility(search[:transferred_from]) if search[:transferred_from].present?
results = results.to_facility(search[:transferred_to]) if search[:transferred_to].present?
# If searching with BOTH a start and end date
if search[:start_date].present? && search[:end_date].present?
results = results.search_between(Date.parse(search[:start_date]), Date.parse(search[:end_date]))
# If search with any other date parameters (including none)
else
results = results.search_by_start_date(Date.parse(search[:start_date])) if search[:start_date].present?
results = results.search_by_end_date(Date.parse(search[:end_date])) if search[:end_date].present?
end
results
end
因为我有台协会已经,我不知道我是否需要为单位范围内以某种方式或在结果变量在某种程度上表达了我的结果搜索逻辑。
这么多的代码,但我仍然不知道你在问什么。 'by_unit_name'应该做些什么?你为什么要发布所有没有什么可以做你真正想要的东西?请举一个你问题出在哪里的简单例子,然后在这里发布。 – phoet
我正在寻找创建一个结果变量,这将允许我通过单元名称进行搜索。所以在我的报告视图中,我可以选择单位名称并按单位名称过滤调用结果。我真的不确定是否需要编写一个范围来执行此操作,或者如果我可以在结果变量中表示这一点。我删除了额外的代码并评论我需要帮助的地方。 – nulltek