Ruby on rails 如何在rails中实现动态重定向?

Ruby on rails 如何在rails中实现动态重定向?,ruby-on-rails,ruby-on-rails-3,routes,Ruby On Rails,Ruby On Rails 3,Routes,如何添加动态重定向?我在ApplicationController和ApplicationHelper中尝试了它,但没有成功 我想要这样的东西: def dynamic_path if current_user.admin? admin_path else overview_path end end 这方面的最佳做法是什么 谢谢 编辑: 哦,我忘了提到我想把它放进我的gem中,这是由两个不同的应用程序使用的,它们都应该使用这种方法。具体应该放在哪里?使用: 更新:由

如何添加动态重定向?我在
ApplicationController
ApplicationHelper
中尝试了它,但没有成功

我想要这样的东西:

def dynamic_path
  if current_user.admin?
    admin_path
  else
    overview_path
  end
end
这方面的最佳做法是什么

谢谢

编辑:

哦,我忘了提到我想把它放进我的gem中,这是由两个不同的应用程序使用的,它们都应该使用这种方法。具体应该放在哪里?

使用:

更新:由于听起来您试图将此帮助程序模块存储在外部gem中,因此您需要确保将模块作为ActionView帮助程序加载,这可以通过在gem中使用来自动完成。看


尝试将其放入
ApplicationController
中,然后在应用程序控制器顶部添加
helper\u方法
行,如下所示:

helper_method :dynamic_path

def dynamic_path
  redirect_to (current_user.admin? ? admin_path : overview_path)
end

helper\u方法
行使此方法在所有视图和控制器中都可用。

我将其添加到gem的
ApplicationController
,但不起作用。知道为什么吗?@Cojones你在做什么宝石?我相信只有引擎风格的gems才有应用程序控制器。Stuart M提出的制作Railtie的解决方案比制作一个完整的引擎要好,如果你只需要共享这个一个助手的方法。gem已经存在并且有一个完整的引擎,它有很多功能,而且由于使用gem的两个应用程序都需要这个动态路径,我想我最好也在gem中使用它?我仍在努力使Railtie正常工作。同样的,在gem的
应用程序控制器
中似乎找不到。您是否正确地
应用程序控制器
中包含来自gem的帮助器模块?有关自动将Gem中的帮助器模块包含到标准ActionView帮助器集中的说明,请参阅更新的我的答案,其中提到tooI一直在玩弄这个问题,甚至以1:1的比例复制了它,只是更改了名称,但它仍然不起作用:
/Users/pbartels/Sites/e_core/lib/e_core/railtie.rb:4:in'block-in':未初始化常量ECore::railtie::routehelp(NameError)
您能否编辑您的帖子以包含相关的铁路代码?听起来像是加载/需要文件的问题
helper_method :dynamic_path

def dynamic_path
  redirect_to (current_user.admin? ? admin_path : overview_path)
end