创建记录时,我想将名为0000000: 68 74 74 70 3a 2f 2f 73 74 61 63 6b 6f 76 65 72 http://stackover
0000010: 66 6c 6f 77 2e 63 6f 6d 2f 71 2f 33 39 31 39 37 flow.com/q/39197
0000020: 37 30 33 2f 35 31 32 38 34 36 34 00 00 00 00 00 703/5128464.....
的列设置为其主键的值(在本例中为original_id
)。从本质上讲,行将变为分层,它们看起来像这样:
id
模型将如下所示:
| id | original_id |
| -- | ----------- |
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| .. | 1 |
| 42 | 42 |
| 43 | 42 |
创建记录很容易,然后像这样更新:
class AccountTransaction < ApplicationRecord
belongs_to :original,
class_name: 'AccountTransaction',
foreign_key: :original_id
end
但我正在寻找一个更优雅的解决方案,一个不需要两个数据库事务的解决方案。谢谢你的帮助。
答案 0 :(得分:0)
您可以使用after_create
回调执行某些操作。
class AccountTransaction < ApplicationRecord
after_create :upate_original_id
def update_original_id
update_attribute(original_id: id)
end
end