#ruby-on-rails #ruby #ruby-on-rails-4 #rspec #factory-bot
#ruby-on-rails #ruby #ruby-on-rails-4 #rspec #завод-бот
Вопрос:
Я только что обновил свое приложение до Rails 4, и несколько моих спецификаций RSpec теперь терпят неудачу, все таким же образом.
SQL (82.3ms) INSERT INTO "profiles" ("career_goal", "created_at", "email", "encrypted_password", "first_name", "gpa", "grad_year", "hidden", "keywords", "kind", "last_name", "major_names", "middle_name", "minor_names", "phone", "id", "research_interest", "updated_at") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [["career_goal", ["Illum et sunt.", "Illo sapiente nesciunt reiciendis nulla fugit est autem."]], ["created_at", Sat, 21 Jun 2014 15:12:40 PDT -07:00], ["email", "madonna@huels.name"], ["encrypted_password", "$2a$10$y1zijhGouDy1OT4qHGnXR./FvXP9T7DHHvu4BofAt5ZBJrqjFisty"], ["first_name", "Jayde"], ["gpa", #<BigDecimal:e684850,'0.25E1',18(36)>], ["grad_year", 2013], ["hidden", false], ["keywords", "Daisha Ea placeat debitis repellendus autem ad voluptas. Illum et sunt. Illo sapiente nesciunt reiciendis nulla fugit est autem. "], ["kind", "student"], ["last_name", "Reilly"], ["major_names", "Anthropology"], ["middle_name", "Daisha"], ["minor_names", "Sociology"], ["phone", "724-953-4023 x4372"], ["id", "01234567"], ["research_interest", "Ea placeat debitis repellendus autem ad voluptas."], ["updated_at", Sat, 21 Jun 2014 15:12:40 PDT -07:00]]
TypeError: can't cast Array to text: INSERT INTO "profiles" ("career_goal", "created_at", "email", "encrypted_password", "first_name", "gpa", "grad_year", "hidden", "keywords", "kind", "last_name", "major_names", "middle_name", "minor_names", "phone", "id", "research_interest", "updated_at") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Похоже, что вызов SQL каким-то образом искажен в настоящее время из-за INSERT INTO "profiles" ("fields", etc) VALUES (?,?,?)
какого-либо понимания того, почему часть ЗНАЧЕНИЙ — это все? было бы оценено. Я проверил свое определение для:profile, и, похоже, это не проблема с подделкой, как я читал в другом месте. (У меня есть Faker::Lorem.words(4).join('-')
, который не дает массива или чего-то еще. Это проблема с активной записью? Есть ли где-нибудь еще, где я должен искать ошибки или вещи, которые нуждаются в перенастройке?
Ответ №1:
Вопросительные знаки не являются проблемой; они являются заполнителями для значений.
Эта часть вашего массива значений
["career_goal", ["Illum et sunt.", "Illo sapiente nesciunt reiciendis nulla fugit est autem."]]
указывает, что career_goal
для него установлен массив. Измените его на одну строку (с join
помощью или путем перезаписи, что угодно).