2011-09-11 41 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