如何覆盖Rails ActiveRecord插入主键方法?

时间:2017-09-30 05:39:11

标签: mysql ruby-on-rails ruby activerecord

我想为多个微服务记录跟踪插入一个名为identity的主键。

identity列的规则是:

  

service_name.to_i(36)+' - ' + table_name.to_i(36)+ id.to_s(36)

我想实现三件事:

  1. 唯一
  2. 表主键
  3. identity可以解码以获取信息
  4. 我做了很多关于如何在创造'之前/周围获得身份证的研究,但我找不到好的答案。

    我已经尝试过:

    1. ActiveRecord回调:around_save,around_create
    2. 在after_create中插入identity,但由于性能问题,这不是一个好的解决方案
    3. 通过self.class.maximum(:id) + 1
    4. 获取ID
    5. 通过mysql LAST_INSERT_ID()
    6. 获取ID

      所以,现在我想添加identity ActiveRecord源,它插入主键id以覆盖,但我不知道rails在插入处理主键的位置。

      请帮助,谢谢!

0 个答案:

没有答案