我的模型中有以下方法:
#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有什么不同?
答案 0 :(得分:1)
两个想法。 首先,尝试在本地生产模式下运行它:
rails server -e production
也可能是您的远程数据库与本地数据库非常不同。
确保您已完成
rake db:migrate
您也可以选择
rake db:push
(有关详细信息,请参阅http://devcenter.heroku.com/articles/taps)
答案 1 :(得分:1)
我认为它与“赞”声明有关。 mysql和heroku的postgresql有时需要在两者之间切换时修改代码。
也许试试
"name ILIKE ?"
也请查看此答案here。始终最好在开发和生产中使用相同的数据库。