0

我知道如何将页面路由到站点根目录,以及如何为每个页面和操作单独指定路由,但我觉得这样做有时会为自己创造不必要的工作。是否有可能使它example.com/method总是等于some_controller#method

就像是:

root "some_controller#index"
controller :some_controller do
    get "/:method" => :method
end

代替

root "some_controller#index"
controller :some_controller do
    get "/" => :index, as: :index
    get "/contact" => :contact, as: :contact
    get "/photos" => :photos, as: :photos
    ...
end

还是那是最好的方法?

4

1 回答 1

1

你已经很接近了:

controller :some_controller do
  get ":controller/:action"
end

:controller/:action:action将在传递给方法的符号引用的控制器上动态地将段匹配到该名称的controller方法。

我会注意这里的安全。请注意您的控制器从其父类(可能是 ApplicationController)继承了哪些方法,因为任何公共方法都可以使用此路由样式访问。

于 2013-09-23T21:03:44.813 回答