Alain Goldman
Alain Goldman

Reputation: 2908

Rails: my ruby code breaks heroku

Ruby code in my view crashes my rails app on heroku. Meanwhile it works in development. I'm using HAML.

    = @sold
    - @sold.each do |x|
      %p lorem

It breaks on the second line - @sold.each do |x| regardless if @sold is equal to nil or if it has a value. Do you guys have any clue as to why?

controller:

  def activity
    @user = current_user 
    @selling = @user.products.where( "quantity != ?", 0 )
    @sold = @user.products.where( "quantity == ?", 0 )
  end

EDIT : Heroku logs says

"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

Upvotes: 0

Views: 66

Answers (1)

Ryan Bigg
Ryan Bigg

Reputation: 107718

Try changing this line:

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

To this:

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

I think the problem is because you're trying to use the double equals as a matcher in PostgreSQL, but it does not support that. You should use = if you want to check for equality there.

Upvotes: 6

Related Questions