Я пытаюсь join
в Rails 3 впервые, и не могу заставить работать самую основную вещь, поэтому, должно быть, упускаю что-то важное. Учитывая
class Member < ActiveRecord::Base
belongs_to :status
...
end
class Status ActiveRecord::Base
has_many :members
...
end
когда я пытаюсь использовать соединение, тестирую в консоли пример, адаптированный из Rails Guides
time_range = (Time.now.midnight - 1.day)..Time.now.midnight
Status.joins(:members).where('member.created_at' => time_range)
Я получаю сообщение об ошибке,
ActiveRecord::StatementInvalid: Mysql2::Error: Unknown column 'member.created_at' in
'where clause': SELECT `statuses`.* FROM `statuses` INNER JOIN `members` ON
`members`.`status_id` = `statuses`.`id` WHERE (`member`.`created_at` BETWEEN
'2011-03-26 23:00:00' AND '2011-03-27 23:00:00')
Обе модели do имеют created_at
столбцы, и это работает: Member.where(:created_at => time_range)
. Я пробовал несколько перестановок и использовал разные столбцы, но каждый раз при попытке соединения получаю одну и ту же ошибку Unknown column
.