如何添加动态重定向?我在ApplicationController
和ApplicationHelper
中尝试了此操作但没有成功。
我想要这样的事情:
def dynamic_path
if current_user.admin?
admin_path
else
overview_path
end
end
最佳做法是什么?
谢谢!
编辑:
哦,我忘了提到我想把它放到我的宝石中,它被两个不同的应用程序使用,两者都应该使用这个方法。我应该把它放在哪里?
答案 0 :(得分:4)
尝试将其放在ApplicationController
中,然后在应用程序控制器的顶部添加helper_method
行,如下所示:
helper_method :dynamic_path
def dynamic_path
redirect_to (current_user.admin? ? admin_path : overview_path)
end
helper_method
行可以在所有视图和控制器中使用此方法。
答案 1 :(得分:1)
使用redirect_to
:
def dynamic_path
redirect_to (current_user.admin? ? admin_path : overview_path)
end
更新:由于听起来您正试图将此辅助模块存储在外部gem中,因此您需要确保将模块作为ActionView帮助程序加载,这可以自动完成在宝石中使用Railtie。参见