如何在关联模型上也具有搜索功能
How to have search functionality on association models as well
通过使用 railscast 视频,我创建了一个适用于同一型号的简单搜索。但现在我有一个显示相关模型数据的模型,我也想搜索它们。
现在我设法让它半工作了,但我假设如果我将字段 "name" 添加到连接中会发生冲突,因为我有两个模型,它们都有一个名为 "name"[ 的列=11=]
def self.search(search)
if search
key = "'%#{search}%'"
columns = %w{ city station venue area country plate_number }
joins(:services).joins(:washer).joins(:location).where(columns.map {|c| "#{c} ILIKE #{key}" }.join(' OR '))
else
where(nil)
end
end
我需要更改什么才能确保我可以搜索所有列?
我认为当您在加入后有不明确的字段名称时,您可以提及 table_name.field_name 以消除歧义并起作用。类似的东西。
joins(:services).joins(:washer).where("services.name = ? or washer.name = ?", "test", "test")
通过使用 railscast 视频,我创建了一个适用于同一型号的简单搜索。但现在我有一个显示相关模型数据的模型,我也想搜索它们。
现在我设法让它半工作了,但我假设如果我将字段 "name" 添加到连接中会发生冲突,因为我有两个模型,它们都有一个名为 "name"[ 的列=11=]
def self.search(search)
if search
key = "'%#{search}%'"
columns = %w{ city station venue area country plate_number }
joins(:services).joins(:washer).joins(:location).where(columns.map {|c| "#{c} ILIKE #{key}" }.join(' OR '))
else
where(nil)
end
end
我需要更改什么才能确保我可以搜索所有列?
我认为当您在加入后有不明确的字段名称时,您可以提及 table_name.field_name 以消除歧义并起作用。类似的东西。
joins(:services).joins(:washer).where("services.name = ? or washer.name = ?", "test", "test")