Как вызвать уничтожение с параметрами? - PullRequest
0 голосов
/ 13 мая 2019

Я ищу способ передачи параметров для уничтожения, чтобы регистрировать, какой пользователь отвечает за уничтожение записи.

У каждой модели, которую я использую, есть соответствующая таблица истории, в которую я записываю журнал каждый раз, когда запись сохраняется, все параметры записи и какой пользователь вызывал ее сохранение. Я хочу убедиться, что я делаю то же самое при уничтожении записи.

Для сохранения я просто переопределил метод save с помощью save(user_id, source), так как я не использую никаких обратных вызовов before_save. С помощью destroy я хочу сохранить обратные вызовы (has_many :submodel, dependent: destroy), при этом сохраняя логирование.

В идеале у меня может быть что-то вроде следующего:

def destroy(user_id, source)
    self.transaction do
        #destroy all associations, using same user_id and source
        self.log_descruction(user_id, source)
        #destroy self
    end
end

Есть предложения?

1 Ответ

0 голосов
/ 14 мая 2019

Вам не нужно сохранять before_save. Не можете ли вы использовать before_destroy перезвонить

См .: https://guides.rubyonrails.org/active_record_callbacks.html#destroying-an-object

вам просто нужно вызвать метод before_destroy ресурса. И в этом методе сохранить журнал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...