Мы используем AASM в целом ряде наших моделей, но мы смотрим на упрощение моделей. Одна из вещей, которые мы хотели бы сделать, - это переместить все материалы Уведомления из моделей и в Наблюдатели.Захватывающие наблюдатели с событиями
Так, учитывая:
class ClarificationRequest < ActiveRecord::Base
include AASM
aasm_initial_state :open
# States
aasm_state :open
aasm_state :closed
# Events
aasm_event :close, :after => :notify_closed do transitions :to => :closed, :from => [:open,:replied], :guard => :can_close? end
end
Я попытался это, но не повезло:
class ClarificationRequestObserver < ActiveRecord::Observer
observe :clarification_request
def after_close
puts '############### message from observer!!!!!'
end
end
Как я могу переместить: notify_closed в качестве наблюдателя?
Thx!
.Karim
Одна из основных проблем, с которыми мы сталкиваемся с этим подходом, состоит в том, что мы действительно хотим создавать события (тип модели аудита), которые также должны иметь current_user_id, и, насколько мне известно, нет простого или правильного способ включить это в Модели ... следовательно, наблюдатели? – khelal
Хотя это может быть и не идеально, вы можете получить идентификатор пользователя следующим образом: В модели пользователя добавьте cattr_accessor: current_user. В контроллере приложения добавьте параметр before_filter, который вызывает def set_current_user. User.current_user = self.current_user – tsdbrown