【发布时间】:2011-12-07 12:43:10
【问题描述】:
我的 Rails 应用程序在本地和我自己的 linux 根目录下完美运行(使用 sqlite 进行测试)
上传到heroku后,我遇到了一个小问题。
我的一半请求不再有效。
所有带有“.where()”条件的请求都被破坏了。
这是来自我的控制器的小代码 sn-p:
def GameModeB
ActiveRecord::Base.include_root_in_json = false
@highscore = Highscore.where("gamemode = \"b\"").order("points DESC").limit(100)
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @highscore }
format.json { render :json => @highscore}
end
end
这是来自 heroku 日志的错误日志
2011-12-07T12:21:08+00:00 app[web.1]: LINE 1: ...highscores".* FROM "highscores" WHERE (gamemode = "b") ORDER...
2011-12-07T12:21:08+00:00 app[web.1]: ^
2011-12-07T12:21:08+00:00 app[web.1]: : SELECT "highscores".* FROM "highscores" WHERE (gamemode = "b") ORDER BY points DESC LIMIT 100): 2
问题是where("gamemode = \"b\"")
那么正确的说法是什么,为什么它在 heroku 上不起作用?谢谢
【问题讨论】:
-
Heroku 使用 Postgres - 您应该尝试在开发中使用与生产中相同的环境。对于您的具体问题,解决方案是编写如下查询:
@highscore = Highscore.where(:gamemode => "b").order("points DESC").limit(100)
标签: sql ruby-on-rails heroku