Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Handle multiple levels of namespace nesting when generating routes #936

Merged
merged 8 commits into from
Nov 14, 2024

Conversation

jagthedrummer
Copy link
Contributor

@jagthedrummer jagthedrummer commented Oct 31, 2024

When doing this:

bin/rails generate super_scaffold Task Team name:text_field
bin/rails generate super_scaffold Project Team name:text_field
bin/rails generate super_scaffold Projects::Milestone Project,Team name:text_field
bin/rails generate super_scaffold Projects::Milestones::IncludedTask Projects::Milestone,Project,Team task_id:super_select{class_name=Task} details:text_field --sortable

We used to incorrectly nest the routes like this:

resources :tasks

resources :projects do
  scope module: 'projects' do
    resources :milestones, only: collection_actions do
      # ⚠️ This is in the wrong place!
      scope module: 'milestones' do
        resources :included_tasks, only: collection_actions, concerns: [:sortable]
      end
    end

    namespace :milestones do
      resources :included_tasks, except: collection_actions, concerns: [:sortable]
    end
  end
end

namespace :projects do
  resources :milestones, except: collection_actions
end

This PR makes it so that we nest the routes correctly like this:

resources :tasks

resources :projects do
  scope module: 'projects' do
    resources :milestones, only: collection_actions

    namespace :milestones do
      resources :included_tasks, except: collection_actions, concerns: [:sortable]
    end
  end
end

namespace :projects do
  resources :milestones, except: collection_actions do 
    # ✅ This is the right place to put this!
    scope module: 'milestones' do
      resources :included_tasks, only: collection_actions, concerns: [:sortable]
    end
  end
end

Fixes: bullet-train-co/bullet_train#1655

@jagthedrummer jagthedrummer marked this pull request as ready for review November 1, 2024 14:16
@jagthedrummer jagthedrummer merged commit 42320bd into main Nov 14, 2024
28 checks passed
@jagthedrummer jagthedrummer deleted the jeremy/namespace-nesting branch November 14, 2024 15:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Super scaffolded routing fails for pretty standard nested, namespaces resources.
1 participant