5 Stimmen

Aktiver Datensatz-Beobachter wird in Konsole/Seed nicht ausgelöst

Ich habe Beobachter eingestellt, die bei Modelländerungen Abzeichen vergeben. Es funktioniert, wenn ich die Ansicht verwende, aber ich scheine nicht zu feuern, wenn ich etwas tue wie : Photo.create(:user_id => user.id, :file => file) aus der Konsole oder aus der Seed-Datei.

Irgendeine Idee?

class ExplorerObserver < ActiveRecord::Observer
  observe :photo

  def after_save(photo)
    user = photo.user
    Explorer.award_achievements_for(user) unless photo.new_record?
  end

end

3voto

rnaud Punkte 2590

Mein Fehler, es war eine dumme Frage, aber für das Archiv, hier ist meine Antwort:

Wenn Sie mehrere Beobachter haben, sollten Sie nicht mehrere Zeilen wie diese einfügen

config.active_record.observers = :popular_observer
config.active_record.observers = :explorer_observer

anstatt Ihre Beobachter zu verketten, hat mein vorheriger Code die Beobachter mit dem letzten überschrieben!

config.active_record.observers = :popular_observer, :explorer_observer

1voto

Ryan Bigg Punkte 104835

Haben Sie vergessen, es in die config/application.rb innerhalb Ihres Application Klasse?

config.active_record.observers = :photo_observer

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X