Mysql Rails-更改备用新数据列的默认值
这是一个Rails4+MySQL,但可能是一个一般的逻辑问题。我甚至没有找到与此相关的主题(仅前端a/B测试),因此,如果有相关问题,我深表歉意 我想做一个A/B测试,但要使用持久数据 考虑一个新的用户注册,其中表中的一列(我们称之为Mysql Rails-更改备用新数据列的默认值,mysql,ruby-on-rails,database,Mysql,Ruby On Rails,Database,这是一个Rails4+MySQL,但可能是一个一般的逻辑问题。我甚至没有找到与此相关的主题(仅前端a/B测试),因此,如果有相关问题,我深表歉意 我想做一个A/B测试,但要使用持久数据 考虑一个新的用户注册,其中表中的一列(我们称之为test)是一个布尔值,每个新注册将不同的布尔状态保存到用户表中每个新用户注册的新DB行 用户1寄存器->testUser1行中的值为false 用户2寄存器->testUser2行中的值为true 用户3寄存器->test用户3行中的值为false 用户4寄存器-
test
)是一个布尔值,每个新注册将不同的布尔状态保存到用户表中每个新用户注册的新DB行
用户1寄存器->test
User1行中的值为false
用户2寄存器->test
User2行中的值为true
用户3寄存器->test
用户3行中的值为false
用户4寄存器->test
用户4行中的值为true
等等
有没有办法在Rails中实现这一点?或者这是一个DB/MySQL问题
谢谢 我可以看到两个选项:在创建之前使用Rails的回调
(或者在验证之前使用),或者在插入之前使用MySQL触发器
Rails回调:
before_create do
self.test = !User.order(:id).last&.test.present?
end
在用户中,在创建之前{self.test=!User.order(:id).last&.test.present?}
应该完成这个任务(第一个创建的用户将以true
结束,第二个以false
结束,第三个以true
结束,依此类推)。否则,在INSERT
语句之前的MySQL触发器可以做完全相同的事情,但是在DB上level@MrYoshiji听起来不错,非常感谢!请将其作为答复提交,以便我批准