У меня странная ошибка SQL, когда я пытаюсь узнать, находится ли объект в массиве:
@announcement = Announcement.first
puts "YAY" if current_user.announcements_read.include?(@announcement)
Ошибка:
ActiveRecord :: StatementInvalid (SQLite3 ::SQLException: неоднозначное имя столбца: create_at: ВЫБЕРИТЕ "announcements" .id FROM "Объявления" INNER JOIN "чтения" ON "Объявления" .ID = "чтения" .announcement_id ГДЕ ("объявления". "Id" = 3) И (("показания" .user_id = 1)) ORDER BY create_at DESC LIMIT 1)
(средняя таблица между users
и announcements
равна readings
, и она отлично работает, когда я что-то делаюкак user.announcements_read.include?(announcement)
в консоли)
Но работает , когда я выполняю противоположный запрос:
puts "YAY" if @announcement.read_by.include?(current_user)
Что здесь происходит?Почему первый запрос работает в консоли, а не в приложении?Почему current_user.announcements_read.include?
получает ошибку SQL, а user.announcements_read
нет?
Кевин