【问题标题】:New and Edit Routes missing in Rails Resources routesRails 资源路线中缺少新路线和编辑路线
【发布时间】:2020-03-04 17:09:26
【问题描述】:

在构建 Rails API 时,我将路由文件声明为:

Rails.application.routes.draw do
  namespace :api do
    namespace :v1 do
      root 'budgets#index'
      resources :users do
        resources :budgets
      end
      post '/login', to: 'sessions#create'
      post '/logout', to: 'sessions#destroy'
      resources :budgets do
        resources :budget_totals
      end
    end
  end
end

但是,在运行rails routes 命令后,我发现缺少“新建”和“编辑”路由。我该如何纠正这个问题?

rails routes 响应的相关部分是:

 Prefix Verb   URI Pattern                                                                              Controller#Action
                          api_v1_root GET    /api/v1(.:format)                                                                        api/v1/budgets#index
                  api_v1_user_budgets GET    /api/v1/users/:user_id/budgets(.:format)                                                 api/v1/budgets#index
                                      POST   /api/v1/users/:user_id/budgets(.:format)                                                 api/v1/budgets#create
                   api_v1_user_budget GET    /api/v1/users/:user_id/budgets/:id(.:format)                                             api/v1/budgets#show
                                      PATCH  /api/v1/users/:user_id/budgets/:id(.:format)                                             api/v1/budgets#update
                                      PUT    /api/v1/users/:user_id/budgets/:id(.:format)                                             api/v1/budgets#update
                                      DELETE /api/v1/users/:user_id/budgets/:id(.:format)                                             api/v1/budgets#destroy
                         api_v1_users GET    /api/v1/users(.:format)                                                                  api/v1/users#index
                                      POST   /api/v1/users(.:format)                                                                  api/v1/users#create
                          api_v1_user GET    /api/v1/users/:id(.:format)                                                              api/v1/users#show
                                      PATCH  /api/v1/users/:id(.:format)                                                              api/v1/users#update
                                      PUT    /api/v1/users/:id(.:format)                                                              api/v1/users#update
                                      DELETE /api/v1/users/:id(.:format)                                                              api/v1/users#destroy
                         api_v1_login POST   /api/v1/login(.:format)                                                                  api/v1/sessions#create
                        api_v1_logout POST   /api/v1/logout(.:format)                                                                 api/v1/sessions#destroy
          api_v1_budget_budget_totals GET    /api/v1/budgets/:budget_id/budget_totals(.:format)                                       api/v1/budget_totals#index
                                      POST   /api/v1/budgets/:budget_id/budget_totals(.:format)                                       api/v1/budget_totals#create
           api_v1_budget_budget_total GET    /api/v1/budgets/:budget_id/budget_totals/:id(.:format)                                   api/v1/budget_totals#show
                                      PATCH  /api/v1/budgets/:budget_id/budget_totals/:id(.:format)                                   api/v1/budget_totals#update
                                      PUT    /api/v1/budgets/:budget_id/budget_totals/:id(.:format)                                   api/v1/budget_totals#update
                                      DELETE /api/v1/budgets/:budget_id/budget_totals/:id(.:format)                                   api/v1/budget_totals#destroy
                       api_v1_budgets GET    /api/v1/budgets(.:format)                                                                api/v1/budgets#index
                                      POST   /api/v1/budgets(.:format)                                                                api/v1/budgets#create
                        api_v1_budget GET    /api/v1/budgets/:id(.:format)                                                            api/v1/budgets#show
                                      PATCH  /api/v1/budgets/:id(.:format)                                                            api/v1/budgets#update
                                      PUT    /api/v1/budgets/:id(.:format)                                                            api/v1/budgets#update
                                      DELETE /api/v1/budgets/:id(.:format)                                                            api/v1/budgets#destroy

【问题讨论】:

    标签: ruby-on-rails ruby routes


    【解决方案1】:

    您是否正在使用api_only 应用程序?那些不会生成 NewEdit 路由。

    您是否使用--api 开关创建了您的应用程序,例如:rails new my-api --api--api 参数告诉 Rails 你只想要一个 API 应用程序。

    参见“What Is Rails API?”和“Rails: Building a Ruby on Rails API-only app”。

    【讨论】:

    • 这对我来说也是一个惊喜。您仍然可以手动创建 newedit 路由。它们只是不是自动的。我想假设是只有 API 的应用程序没有它们。
    • @Genetic1989 如果您不介意选择此作为已接受的答案,那就太棒了。这会让有相同问题的其他人更容易找到答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-27
    • 1970-01-01
    • 1970-01-01
    • 2012-03-07
    • 2016-08-18
    • 1970-01-01
    相关资源
    最近更新 更多