factory_girl вызывает сбой спецификации RSpec после обновления Rails 4

#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 помощью или путем перезаписи, что угодно).