我有我的DailyOrdersController
內一個名爲update
方法:如何爲特定用戶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的用戶模型:
- 用戶(擁有
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
(當登錄用戶是管理員用戶時)。
現在該怎麼辦?