2

我在我的 RoR webapp 中使用 activeadmin。当我创建一个新的用户/记录时,我想设置/更新一个属性取决于它的 id/pk。例如,他的 id 是 1234,列 X 的值应该是 1234-XXX。

由于没有 activerecord 回调(我不能用回调设置值,因为没有一个,在条目被创建/存储在数据库中之后)你问,我怎么能解决这个问题?

提前致谢

4

2 回答 2

2

我认为你可以使用after_commit回调

after_commit :do_something, on: :create

def do_something
  update_column(:column_x, "#{id}-XXX")
end
于 2018-05-06T21:32:24.247 回答
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
于 2018-05-06T15:47:49.267 回答