Reputation: 2908
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
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