2016-06-07 4 views
1

Я работаю с Задержанным заданием, которое после его завершения отправляет электронное письмо администратору, который его запросил. Итак, для этого мне нужно знать, кто пользователь admin, который запустил его внутри модели Spree::Order. Я попытался с try_spree_current_user и spree_current_user, но они не работают возвращения:Spree - Как получить зарегистрированного пользователя admin

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' 

ответ

1

Некоторые, как вам нужно, чтобы убедиться, что администратор может запустить заказ:

# 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 

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

Я уверен, что вы имели в виду OrdersController? Не модель.