Rails 3 ArgumentError: Неизвестный ключ: begin_date - PullRequest
3 голосов
/ 19 ноября 2011

У меня есть Waiver объект, который имеет членство. Я хочу выяснить, есть ли у отказа членство в данном квартале:

def has_current_membership?
  memberships.count("begin_date >= :begin_date AND end_date <= :end_date", { :begin_date => Time.now.beginning_of_quarter, :end_date => Time.now.end_of_quarter }).count > 0
end

Это, однако, дает мне ArgumentError: Unknown key: begin_date. Членство, однако, имеет столбец begin_date, потому что если я наберу Waiver.first.memberships в консоли, я получу:

[#<Membership id: 20, waiver_id: 1, begin_date: "2011-10-01", end_date: "2012-01-01", created_at: "2011-11-19 07:10:10", updated_at: "2011-11-19 07:10:10">] 

Что я делаю не так?

1 Ответ

7 голосов
/ 19 ноября 2011

Вы должны использовать .where для условия поиска вместо .count дважды:

memberships.where("begin_date >= :begin_date AND end_date <= :end_date", { :begin_date => Time.now.beginning_of_quarter, :end_date => Time.now.end_of_quarter }).count > 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...