Ruby on Rails - установить атрибут после создания записи - PullRequest
0 голосов
/ 06 мая 2018

Я использую activeadmin в моем веб-приложении RoR. когда я создаю нового пользователя / запись, я хочу установить / обновить атрибут в зависимости от его id / pk. например, его идентификатор 1234, столбец X должен иметь значение 1234-XXX.

Поскольку для этого нет обратного вызова activerecord (я не могу установить значение с помощью обратных вызовов, потому что его нет после создания / сохранения записи в БД), вы спросите, как я могу решить эту проблему?

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

Я думаю, вы можете использовать after_commit обратный вызов

after_commit :do_something, on: :create

def do_something
  update_column(:column_x, "#{id}-XXX")
end
0 голосов
/ 06 мая 2018

Вы можете использовать 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
...