2011-09-11 76 views
0

我在我的模型下面的方法:通配符搜索不工作在Heroku

#find all the manufacturers names and ids or those matching a search string 
    def self.find_all(manufacturer="") 
     m_name = manufacturer.gsub(" ", '%') if manufacturer 
    find(:all, :select => 'id, name', :order => "name", :conditions => ["name like ?", "%#{m_name.capitalize}%"]) 
    end 

這工作完全在我的本地機器上,但是當我把它在Heroku它的工作原理不太好:如果我做一個搜索並輸入多個單詞不會返回任何值。

Heroku有什麼不同?

回答

1

我認爲這是與「贊「聲明。 mysql和heroku的postgresql在兩者之間切換時需要修改代碼。

也許嘗試

"name ILIKE ?" 

也籤這個答案here。總是最好在開發和生產中使用相同的數據庫。

+0

我不知道關於postgresql的ilike sql語句。一旦我使用它,一切工作。謝謝HIshalv – chell

+0

@chell很高興幫助,我在一段時間後遇到類似的問題。也請嘗試看看這個頁面here Hishalv

1

兩個想法。 首先,嘗試在生產模式在本地運行它:

rails server -e production 

此外,它可能是您的遠程數據庫是當地的一個很大的不同。

確保你已經做

rake db:migrate 

你可以選擇性地也做

rake db:push 

(見http://devcenter.heroku.com/articles/taps獲取更多信息)

+0

謝謝大衛的回答。你是對的。我在本地運行MYSQL,並在HEROKU上運行Postgres。 – chell