>我在我的RoR web应用程序中使用activeadmin。 当我创建一个新用户/记录时,我想根据它的 id/pk 设置/更新一个属性,例如他的 id 是 1234,X 列的值应该是 1234-XXX。
由于没有 activerecord 回调(我不能用回调设置值,因为在数据库中创建/存储条目后没有回调(你问,我该如何解决这个问题?
提前致谢
我认为您可以使用after_commit
回调
after_commit :do_something, on: :create
def do_something
update_column(:column_x, "#{id}-XXX")
end
您可以使用after_action
控制器回调:
class RecordsController < ApplicationController
after_action :set_columnx, only: [:create, :update]
private
def set_columnx
@record = Record.find(params[:id])
@record.columnx = "#{@record.id}-ABCD"
@record.save!
end
end