У меня есть метод, названный update
внутри моего DailyOrdersController
:Как skip_callback before_save для конкретного пользователя?
def update
if @daily_order.update(daily_order_params.merge({default_order:false}))
respond_or_redirect(@daily_order)
else
render :edit
end
end
Моя DailyOrder
модель:
before_save :refresh_total
def refresh_total
# i do something here
end
То, что я пытаюсь сделать сейчас, я хочу refresh_total
обратного вызова, который следует пропустить, если запрос на обновление поступает от current_admin
.
У меня есть 2 пользовательская модель генерируется с использованием DEViSE перл:
- пользователя (имеет
current_user
) - Администратор (имеет
current_admin
)
Я пытаюсь сделать это следующим образом:
def update
if current_admin
DailyOrder.skip_callback :update, :before, :refresh_total
end
if @daily_order.update(daily_order_params.merge({default_order:false}))
respond_or_redirect(@daily_order)
else
render :edit
end
end
Но он не работает и продолжает звонить по телефону refresh_total
, если запрос на обновление поступает от current_admin
(когда пользователь вошел в систему пользователем admin).
Что мне теперь делать?