我在我的RoR webapp中使用activeadmin。当我创建一个新的用户/记录时,我想根据它的id / pk设置/更新属性。例如,他的id是1234,列X的值应该是1234-XXX。
由于没有activerecord回调(我不能用回调设置值,因为没有一个,在数据库中创建/存储条目后)你要问,我怎么能解决这个问题?
提前致谢
答案 0 :(得分:1)
您可以使用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
答案 1 :(得分:1)
我认为你可以使用after_commit
回调
after_commit :do_something, on: :create
def do_something
update_column(:column_x, "#{id}-XXX")
end