Rails update_attribute не работает в производственной среде

Журналы по производству:

irb(main):036:0> People.find(7).update_attribute(:all_read,[2,3])
  People Load (1.2ms)  SELECT  "people".* FROM "people" WHERE "people"."id" = $1 LIMIT 1  [["id", 7]]
  People Load (1.2ms)  SELECT  "people".* FROM "people" WHERE "people"."id" = $1 LIMIT 1  [["id", 7]]
   (0.7ms)  BEGIN
   (0.7ms)  BEGIN
   (0.7ms)  COMMIT
   (0.7ms)  COMMIT
  People Store (29.1ms)  {"id":7}
  People Store (29.1ms)  {"id":7}
=> true
irb(main):037:0> People.find(7).all_read
  People Load (1.0ms)  SELECT  "people".* FROM "people" WHERE "people"."id" = $1 LIMIT 1  [["id", 7]]
  People Load (1.0ms)  SELECT  "people".* FROM "people" WHERE "people"."id" = $1 LIMIT 1  [["id", 7]]
=> []

Это работает отлично, но это не работает на героку. Я использую sqlite3 локально, postgresql на heroku.

Другой код:

class People < ActiveRecord::Base
  serialize :all_read, Array

schema.db
  create_table "people", force: :cascade do |t|
    ...
    t.string   "all_read",            default: "--- []
"
  end

ruby-on-rails,postgresql,heroku,

-4

Ответов: 2


0

Вы должны проверить свою версию своей БД. Также проверьте версию драгоценного камня в области разработки и производства групп.

Я не видел запрос обновления в вашем журнале.


0

sqlite и postgres очень разные используют одну и ту же базу данных при разработке

например varchar в postgres указывается длина строки и в sqlite неограничен.

если вы хотите найти то, что является точной проблемой, после того, как ваш update_attribute вызовет метод .errors (с помощью beebug или logger), чтобы увидеть проблему

рубин-на-рельсы, PostgreSQL, Heroku,
Похожие вопросы