Controller padrino:同名的子应用程序和控制器生成冗余url

Controller padrino:同名的子应用程序和控制器生成冗余url,controller,url-routing,padrino,Controller,Url Routing,Padrino,我有一个帕德里诺项目 我创建了一个名为“用户”的子应用程序 我还有一个名为user的模型和一个名为users的控制器来处理路由 Users.controllers :users do 问题是,正在生成和响应的URL是 app.com/users/users/index 等 除非我去每一个动作并绘制它 get :index, :map => '/' do 有更好的方法吗 我真的不想将动作放在app.rb中。。尽管这很有效。我喜欢分居 有类似的吗 Users.controllers :us

我有一个帕德里诺项目

我创建了一个名为“用户”的子应用程序

我还有一个名为user的模型和一个名为users的控制器来处理路由

Users.controllers :users do
问题是,正在生成和响应的URL是

app.com/users/users/index 等

除非我去每一个动作并绘制它

get :index, :map => '/' do
有更好的方法吗

我真的不想将动作放在app.rb中。。尽管这很有效。我喜欢分居

有类似的吗

Users.controllers :users do
    map '/'
end
是否有一个命名约定,我可以遵循它来创建一个默认控制器来响应我的应用程序根url

我想把它保存在用户控制器中,这样我就可以使用users\u索引等

捆绑包中包含的宝石:

activemodel (3.2.1)
activerecord (3.2.1)
activesupport (3.2.1)
arel (3.0.0)
bcrypt-ruby (3.0.1)
builder (3.0.0)
bundler (1.0.21)
haml (3.1.4)
http_router (0.10.2)
i18n (0.6.0)
mail (2.3.0)
mime-types (1.17.2)
multi_json (1.0.4)
padrino (0.10.6.c)
padrino-admin (0.10.6.c)
padrino-cache (0.10.6.c)
padrino-core (0.10.6.c)
padrino-gen (0.10.6.c)
padrino-helpers (0.10.6.c)
padrino-mailer (0.10.6.c)
polyglot (0.3.3)
rack (1.4.1)
rack-protection (1.2.0)
rack-test (0.6.1)
rake (0.9.2.2)
sass (3.1.13)
shoulda (2.11.3)
sinatra (1.3.2)
sinatra-flash (0.3.0)
sqlite3 (1.3.5)
thor (0.14.6)
tilt (1.3.3)
treetop (1.4.10)
tzinfo (0.3.31)
url_mount (0.2.1)
如果当我的应用程序名与控制器名匹配时,我必须为控制器中的每个操作映射路径,那很好。我只是想知道是否有办法通过控制器为我的所有操作设置基路径或根路径

谢谢

您可以直接使用:

get "/" do
end
因此,如果我有一个名为Users的应用程序和一个名为Users的控制器来处理路由,我可以说/Users或/Users/new等,而不是/Users/Users/new

再说一次,我对这个很陌生,所以我不知道这是否是最好的处理方法。我可以在每条路线上手动设置地图,但那会很烦人

我希望DAddYE能参与其中,并提供更好的建议

#padrino-core-0.10.6.c/lib/padrino-core/application/routing.rb

#around line 655
#method parse_route

#right after unless controller.empty? i added the following which works in my case

   if controller.last.downcase == app_name.downcase and map.blank?
    controller = controller.slice(0, -2) unless controller.length == 1
    controller_path = controller.join("/")
    path.gsub!(%r{^\(/\)|/\?}, "")
    map = File.join(controller_path, path)
end