2011-01-13 47 views
1

我遵循:http://railscasts.com/episodes/37-simple-search-form(儘管是更新後的版本)來實現在我的應用程序上搜索。在rails中修改簡單搜索以搜索鏈接的數據?

現在,當您搜索時,它會搜索1個表格。如果該錶鏈接到另一個表或連接表,該怎麼辦?有沒有辦法讓它搜索這些字段。

我這樣說,是因爲目前我有它從一個表中搜索到字段:

def self.search(search) 
    if search 
     where('LOWER (description) LIKE ? OR LOWER (title) LIKE ?', "%#{search}%" , "%#{search}%") 
    else 
     scoped 
    end 
    end 

但我真的很喜歡它來搜索鏈接的表也是如此。有任何想法嗎?

回答

2

是的,你可以添加加入到尋找

# models/project.rb 
def self.search(search) 
    if search 
    find(:all, :joins => :other_model, :conditions => ['projects.name LIKE :search or other_models.name LIKE :search', {:search => "%#{search}%"}]) 
    else 
    find(:all) 
    end 
end 

確定,這將是未來

def self.search(search) 
     if search 
     joins(:other_model).where('LOWER (projects.description) LIKE ? or LOWER (other_models.name) LIKE ?', "%#{search}%", "%#{search}%") 
     else 
     scoped 
     end 
    end 
+0

確實找到(:所有)在rails3工作? – Elliot 2011-01-13 21:01:13

0

你可以看看searchlogic一個更好的例子(它有一個導軌3分支在github上)它使搜索更容易!