Ruby on rails Rails:我的ruby代码破坏了heroku

Ruby on rails Rails:我的ruby代码破坏了heroku,ruby-on-rails,ruby,heroku,Ruby On Rails,Ruby,Heroku,我视图中的Ruby代码使我在heroku上的rails应用程序崩溃。同时,它也在发展中发挥作用。我在用HAML = @sold - @sold.each do |x| %p lorem 它在第二行-@sell.each do | x |中断,无论@sell是否等于零或是否有值。你们知道为什么吗 控制器: def activity @user = current_user @selling = @user.products.where( "qua

我视图中的Ruby代码使我在heroku上的rails应用程序崩溃。同时,它也在发展中发挥作用。我在用HAML

    = @sold
    - @sold.each do |x|
      %p lorem
它在第二行
-@sell.each do | x |
中断,无论@sell是否等于零或是否有值。你们知道为什么吗

控制器:

  def activity
    @user = current_user 
    @selling = @user.products.where( "quantity != ?", 0 )
    @sold = @user.products.where( "quantity == ?", 0 )
  end
编辑:Heroku日志

"HINT:  No operator matches the given name and argument type(s). You might need to add explicit type casts.

2013-10-21T03:21:40.646768+00:00 app[web.1]:     21:           %p one
2013-10-21T03:21:40.646570+00:00 app[web.1]:     20:         - @sold.each do |x|
2013-10-21T03:21:40.646570+00:00 app[web.1]:     17:             %button Status
2013-10-21T03:21:40.646570+00:00 app[web.1]:     18:       %tbody
2013-10-21T03:21:40.646570+00:00 app[web.1]:     19:         = @sold
2013-10-21T03:21:40.646768+00:00 app[web.1]:   app/views/users/activity.html.haml:20:in `_app_views_users_activity_html_haml___1193554036748909609_69954007105480

尝试更改此行:

@sold = @user.products.where("quantity == ?", 0)
为此:

@sold = @user.products.where(quantity: 0)

我认为问题是因为您试图在PostgreSQL中使用double equals作为匹配器,但它不支持这一点。如果您想检查那里是否相等,应该使用
=

尝试更改此行:

@sold = @user.products.where("quantity == ?", 0)
为此:

@sold = @user.products.where(quantity: 0)

我认为问题是因为您试图在PostgreSQL中使用double equals作为匹配器,但它不支持这一点。如果你想检查那里的平等性,你应该使用
=

出售的
@sell
是什么类型的?你确认在Heroku上运行的Ruby版本与你的本地版本相同吗?@AlainGoldman:提示行上方有没有其他内容?请向我们展示此消息上方和下方的20行。^是的,我通过在Gemfile中说明ruby的版本做到了。
@salled
的类型是什么?您确认在Heroku上运行的ruby版本与您的本地版本相同吗?@AlainGoldman:提示行上方是否有其他内容?请向我们展示此消息上方和下方的20行。^是的,我在Gemfile中声明了ruby的版本,或者使用了很好的AR哈希语法,例如
where(quantity:0)
就是这样。这是一个惊人的观点,谢谢!!两分钟后我会把它标对的。谢谢它支持吗!=如果我想检查仍在销售的商品,该怎么办@销售=@user.products.where(“数量!=?”,0)@AlainGoldman:是的,PostgreSQL理解
=。如果要在PostgreSQL上部署,您可能需要花一些时间进行检查,并且您真的应该在PostgreSQL上进行开发(不,AR不会将您与数据库之间的差异隔离开来,甚至不会接近)。或者使用良好的AR哈希语法,例如
where(quantity:0)
,就是这样。这是一个惊人的观点,谢谢!!两分钟后我会把它标对的。谢谢它支持吗!=如果我想检查仍在销售的商品,该怎么办@销售=@user.products.where(“数量!=?”,0)@AlainGoldman:是的,PostgreSQL理解
=。如果要在PostgreSQL上部署,您可能需要花一些时间进行检查,并且您真的应该在PostgreSQL上进行开发(不,AR不会将您与数据库之间的差异隔离开来,甚至不会接近)。