1

通过使用railscast视频,我创建了一个适用于相同模型的简单搜索。但现在我有一个模型显示相关的模型数据,我也想搜索它们。如何在关联模型上具有搜索功能

现在,我设法让半的工作,但我想我有冲突,如果我添加字段“名”到加入,因为我有两个模式,有一个名为“名”

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 

我需要更改哪些内容以确保可以搜索所有列?

+0

我觉得当你在加入后有模棱两可的字段名称时,你可以提到table_name.field_name,这样它就可以消除歧义并起作用。你怎么看? – power

回答

1

我觉得当你在加入后有含糊的字段名称时,你可以提到table_name.field_name,这样它就可以消除歧义并且工作。就像是。

joins(:services).joins(:washer).where("services.name = ? or washer.name = ?", "test", "test")