spree-auth-devise gem 中有一个私有方法。该方法位于控制器 UserSessionsController 内部https://github.com/spree/spree_auth_devise/blob/master/lib/controllers/frontend/spree/user_sessions_controller.rb https://github.com/spree/spree_auth_devise/blob/master/lib/controllers/frontend/spree/user_sessions_controller.rb
我希望覆盖函数“redirect_back_or_default”。
这可能吗?
Update
在混合和匹配您的答案并进行一些谷歌搜索后,我得出了这个解决方案:
Spree::UserSessionsController.class_eval do
private
def redirect_back_or_default(default)
if default == "/admin/orders" or session["spree_user_return_to"] == "/admin/orders"
redirect_to("/admin/users")
else
redirect_to(session["spree_user_return_to"] || default)
end
session["spree_user_return_to"] = nil
end
end
我已将脚本文件放置在 config/initializers 中。
谢谢你们。
当然你可以重写私有方法:
class Super
private def i_am_private
'private method'
end
end
class Sub < Super
private def i_am_private
'overridden ' << super
end
end
Sub.new.send(:i_am_private)
# => 'overridden private method'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)