Rails在heroku上运行的生产应用程序的奇怪行为

时间:2012-07-31 18:20:16

标签: ruby-on-rails api heroku

在用户模型中,我有类型点的属性位置。现在我有一个验证码:

validates :location, :format => { :with => /\(-?\d+(?:\.\d+)?,-?\d(?:\.\d+)?\)/,
                                    :on => :update,
                                    :if => :location_changed? }

它在console,localhost上工作正常,但在heroku上它返回:

  

由UsersController处理#update更新为 / 2012-07-31T18:14:37 + 00:00   app [web.1]:参数:   {“user”=&gt; {“location”=&gt;“(3.545452,2.4353534)”},“id”=&gt;“self”}   2012-07-31T18:14:37 + 00:00 app [web.1]:已完成500内部服务器   错误13ms 2012-07-31T18:14:37 + 00:00 app [web.1]:   2012-07-31T18:14:37 + 00:00 app [web.1]:NoMethodError(未定义的方法   location_changed?' for #<User:0x00000004dc29c8>): 2012-07-31T18:14:37+00:00 app[web.1]:
app/controllers/users_controller.rb:16:in
更新'

实际上它在heroku控制台中也很有用,但在curl请求中不起作用。

Rails版本3.2.7。

attr_accessible :profile_picture, :password, :location

谢谢!

1 个答案:

答案 0 :(得分:0)

它看起来像一个魔术。如果表和服务器重新启动,我用娱乐修复它。很奇怪。