2014-09-12 56 views
0

我已經在這裏得到了很大的幫助,所以謝謝你! 我想要一個搜索表單,即在我的網站上進行搜索。 現在,當我在搜索表單中添加內容時,它只會搜索列表的標題,但我希望搜索表單還搜索列表的位置和說明。 這裏是我得到在所有的位置,描述和標題搜索Ruby On Rails

lisitng.rb

def self.search(search) 
    if search 
    self.where("title like ?", "%#{search}%") 
    else 
    self.all 
    end 
end 

listings_controller.rb

def index 

@listings = @ listings.search(PARAMS [:搜索])如果PARAMS [:搜索] 。當下?

我相信它是一個簡單的修復,但我無法找到我所需要的。 我感謝您的幫助!

感謝

+0

您可以添加到您的where子句你的其他領域。查找更多有關搜索數據庫的信息。 – MrDanA 2014-09-12 18:11:14

回答

1

如果「位置」和「說明」是類中的其他領域,嘗試改變搜索方法:使用或並期待在

def self.search(search) 
    query = "%#{search}%" 
    if search 
    self.where("title like ? or location like ? or description like ?", query, query, query) 
    else 
    self.all 
    end 
end 
+0

它真的很棒。爲什麼我必須在這個實例中定義query =「%#{search}%」而不是當我在尋找一個字段? – Rika 2014-09-12 19:00:37

+0

哦,我只是試圖爲你節省一點點打字費用。你也可以剛完成'self.where(「標題,像?或像?或類似?的描述,」%#{search}%「,」%#{search}%「,」%#{search}% 「)'而不是定義該變量。 – bskaggs 2014-09-12 19:05:07

+0

oooh我明白了。得到它了!非常感謝。這很有道理:) – Rika 2014-09-12 19:16:39