Ruby on rails 如何显式设置rails引擎路由代理?
在我的Rails 5.0.7应用程序中,我将threded(0.15.4)作为引擎安装在名称空间中Ruby on rails 如何显式设置rails引擎路由代理?,ruby-on-rails,Ruby On Rails,在我的Rails 5.0.7应用程序中,我将threded(0.15.4)作为引擎安装在名称空间中 #routes.rb namespace :home do mount Thredded::Engine => "/communities", as: "thredded" end 这允许我访问/home/communities以打开threded界面 不幸的是,这也会导致意外行为。rails路由代理未按预期设置为threded,而是设置为home\u threded。如果我想访问引
#routes.rb
namespace :home do
mount Thredded::Engine => "/communities", as: "thredded"
end
这允许我访问/home/communities以打开threded界面
不幸的是,这也会导致意外行为。rails路由代理未按预期设置为threded
,而是设置为home\u threded
。如果我想访问引擎中的命名路由,我需要执行home\u threded.root\u path
而不是threded.root\u path
这尤其麻烦,因为threded.root\u路径实际上是在threded gem本身的代码中引用的,它现在抛出了一个错误
是否有某种方法可以显式设置路由代理以避免在路由代理中包含名称空间
我考虑并拒绝了以下几点:
home\u threded.some\u path
而不是预期的threded.some\u path
scope :home do
mount Thredded::Engine => "/communities", as: "thredded"
end
这会将/home
添加到您的URI模式中,但保持您的控制器#操作
和前缀
不变。您尝试过:
scope :home do
mount Thredded::Engine => "/communities", as: "thredded"
end
这应该将
/home
添加到您的URI模式中,但保持您的控制器#操作
和前缀
不变。啊,这很有效。名称空间用于其他资源,但看起来rails可以处理与名称空间相同的作用域。啊,这很有效。名称空间用于其他资源,但看起来rails可以处理与名称空间相同的范围。