Rails 3 - неопределенный метод `where 'для # <пользователь: 0x00000104c69b98> - PullRequest
1 голос
/ 13 декабря 2011

У меня есть следующий вспомогательный метод:

  def orders_chart_series(orders, start_time)
    orders_by_day = orders.where(:created_at => start_time.to_date..Date.today).
                    group("date(created_at)").
                    select("created_at, count(id) as total_price")
    (start_time.to_date..Date.today).map do |date|
      order = orders_by_day.detect { |order| order.created_at.to_date == date }
      order && order.total_price.to_f || 0
    end.inspect
  end

и я все еще получаю сообщение об ошибке в названии этой темы. Я попытался напечатать содержимое параметра orders и получил следующее:

#<User:0x00000104c69b98>

Что означает эта проблема? Я пытаюсь найти решение этой проблемы, но я все еще знаю, как это исправить. Я попытался также заменить команду , где для условий , но все так же.

Я буду очень благодарен за любую помощь по этой проблеме, спасибо.

1 Ответ

4 голосов
/ 13 декабря 2011

Вы пытаетесь вызвать where в User -экземпляре, а не в User -классе (where - это метод класса).Вы можете изменить orders.where на orders.class.where.

(Также немного странно иметь один экземпляр User в переменной под названием orders, но это может быть только я.)

...