У меня есть запрос активной записи, который отлично работает в консоли, но не работает, когда я использую его в задаче rake
Вот начало моей задачи rake:
namespace :attendees do
desc "Migrate sms plans to receive_sms attribute for attendees"
task migrate_sms_plans: :environment do
attendees_with_sms_plans = Attendee.select('attendees.id, attendees.phone, attendees.local_phone').joins(:plans).where('plans.name = ?', "Yes! SMS!")
Почему оператор select работает в моей консоли rails, но выдает мне следующую ошибку, когда я использую его в задаче rake, и как я могу это исправить:
ActiveRecord::StatementInvalid: PG::UndefinedFunction: ERROR: function count(integer, character varying, character varying) does not exist
LINE 1: SELECT COUNT(attendees.id, attendees.phone, attendees.local_...
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
Оказалось, что ошибка не была selectутверждение, но в следующей строке:
puts <<-TEXT
Going to migrate #{attendees_with_sms_plans.count} attendees from "Yes! SMS!" plan to receive_sms: true attribute on Attendee Model
TEXT
, который я исправил, изменив на:
puts <<-TEXT
Going to migrate #{attendees_with_sms_plans.to_a.count} attendees from "Yes! SMS!" plan to receive_sms: true attribute on Attendee Model
TEXT