Ruby on rails Rails update_属性在生产环境中不起作用
生产日志:Ruby on rails Rails update_属性在生产环境中不起作用,ruby-on-rails,postgresql,heroku,Ruby On Rails,Postgresql,Heroku,生产日志: 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"."i
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]]
=> []
这在本地非常有效,但在heroku上不起作用。
我在本地使用sqlite3,在heroku上使用postgresql
其他相关代码:
class People < ActiveRecord::Base
serialize :all_read, Array
schema.db
create_table "people", force: :cascade do |t|
...
t.string "all_read", default: "--- []\n"
end
class人员
您应该检查数据库的版本。
同时在集团开发和生产中检查gem版本
我没有在您的日志中看到更新查询。sqlite和postgres非常不同 开发时使用相同的数据库 例如,postgres中的varchar是指定长度的字符串,而sqlite中的varchar是不受限制的 如果您想找到确切的问题是什么,在您的update\u属性调用之后
使用.errors方法(使用byebug或logger)查看问题生产日志上有什么内容?为什么进行向下投票???在没有提供建议的情况下进行向下投票是没有意义的。