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") 
相關問題