2016-06-07 5 views
1

Ich arbeite mit einem verzögerten Job, der nach seinem Abschluss eine E-Mail an den Admin-Benutzer sendet, der ihn angefordert hat. Um dies zu tun, muss ich wissen, wer der Admin-Benutzer ist, der es im Modell Spree::Order gestartet hat. Ich habe versucht, mit try_spree_current_user und spree_current_user aber sie Rückkehr nicht funktionieren:Spree - Wie bekomme ich den aktuell geloggten Admin-Benutzer?

NameError (undefined local variable or method `try_spree_current_user' for #<Spree::Order:0x007f93811d7240>): 
    app/models/spree/order_decorator.rb:30:in `after_cancel' 
    app/controllers/spree/admin/orders_controller_decorator.rb:4:in `cancel' 

Antwort

1

Einige, wie Sie sicherstellen müssen, dass ein Admin den Auftrag starten können:

# Is this user an admin 
if spree_current_user.admin? 
# Do some delayed job 
# send the email 
# because spree_current_user.id is the one that sends it 
else 
flash[:error] = "You need to be an admin to do this." 
redirect_back_or_default(spree.root_path) 
end 

Die oben tun sollten was willst du tun. Sie müssen testen, ob der aktuelle Benutzer ein Administrator ist und dann tun, was er tun muss.

Ich bin sicher, du meintest die OrdersController? Kein Modell.

Verwandte Themen