Могу ли я автоматически сохранить данные текущего пользователя с помощью обратных вызовов ActiveRecord? - PullRequest
2 голосов
/ 07 марта 2011

Я хотел бы использовать обратный вызов ActiveRecord before_save, чтобы помочь мне отследить, какие пользователи редактируют какие записи. Например

class Foo < ActiveRecord::Base
  before_save
   self.edited_by = curent_user.username
  end
  ....
end

Проблема, с которой я здесь сталкиваюсь, заключается в том, что Foo понятия не имеет, что такое current_user, потому что он исходит от помощника контроллера.

Я мог бы сделать все это в контроллере, я понимаю. Но было бы неплохо просто вставить это в обратный вызов before_save, если бы я мог.

1 Ответ

1 голос
/ 07 марта 2011

Самый простой способ сделать это - сделать вашу модель богаче:

class Article
  def edit!(editor)
    self.edited_by = editor.name
    self.save!
  end
end

Нет необходимости использовать обратные вызовы.

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