我正在尝试将父级分配为超级管理员。当我运行命令parent.toggle!(superadmin)时,它没有将父项分配为superadmin。
我无法找到错误
irb(main):004:0> parent.toggle!(:superadmin)
(0.2ms) begin transaction
Parent Update (0.6ms) UPDATE "parents" SET "updated_at" = ?, "superadmin" = ? WHERE "parents"."id" = ? [["updated_at", "2018-06-20 17:50:31.273816"], ["superadmin", 1], ["id", 1]]
Parent Update (0.2ms) UPDATE "parents" SET "updated_at" = ?, "superadmin" = ? WHERE "parents"."id" = ? [["updated_at", "2018-06-20 17:50:31.280343"], ["superadmin", 0], ["id", 1]]
(1.8ms) commit transaction
=> true
答案 0 :(得分:0)
似乎事务已完成,请记住,切换未分配true,反之则将false更改为true,具体取决于它具有的当前值。
在您发送的示例中,它首先更改为true,然后再次更改为false。您正在正确地谈论代码。但是也许有一个回调,在保存之前将其值再次更改为false。检查模型是否有回调或对此是否有规则。