【问题标题】:How to conventionally map controller actions to routes in rails?如何按照惯例将控制器操作映射到 Rails 中的路由?
【发布时间】:2026-02-07 00:15:02
【问题描述】:

我有 rails 5.1 应用程序,并且在 controller do 块下有一些路线。

controller "pages" do 
    get "/dashboard", action: "dashboard"
    get "/guide", action: "guide"
    get '/welcome/:email', action: "welcome"
    get '/guest/:email', action: 'guest'
    get '/settings', action: "settings"
end

如您所见,所有路由名称实际上都映射到同名操作。我正在寻找任何可能将其干燥的可能性。类似的东西。

controller "pages" do 
    get "/dashboard"
    get "/guide"
    get '/welcome/:email'
    get '/guest/:email'
    get '/settings'
end

请考虑我希望路由为/dashboard 而不是/pages/dashboard,这是不使用常规路由的原因,即脚手架生成的get /pages/dashboard

【问题讨论】:

    标签: ruby-on-rails ruby routes


    【解决方案1】:

    像这样:

    controller "pages" do 
        get :dashboard
    end
    

    这会将 /dashboard 路由到 Pages#dashboard,您可以使用 bundle exec rake routes | grep dashboard 进行验证

    【讨论】:

    • 我们如何在其中添加参数?
    • 我不确定你能不能
    最近更新 更多