• Y
    Generate the correct path in nested scaffold generator · 4dcb630c
    yuuji.yaginuma 提交于
    Currently, namespaced scaffold generator will generate an incorrect path
    and the generated file will not work properly.
    
    ```
    $ ./bin/rails g scaffold admin/user
    $ ./bin/rails db:migrate
    $  ./bin/rails t test/controllers
    # Running:
    
    E
    
    Error:
    Admin::UsersControllerTest#test_should_create_admin_user:
    NameError: undefined local variable or method `admin_admin_users_url' for #<Admin::UsersControllerTest:0x000055a59f25ff68>
    Did you mean?  admin_users
        test/controllers/admin/users_controller_test.rb:20:in `block (2 levels) in <class:UsersControllerTest>'
        test/controllers/admin/users_controller_test.rb:19:in `block in <class:UsersControllerTest>'
    
    bin/rails test test/controllers/admin/users_controller_test.rb:18
    ```
    
    This is because combine `controller_class_path` and `singular_table_name`
    to generate route.
    https://github.com/rails/rails/blob/360698aa245b45349d1d1b12e1afb34759515e69/railties/lib/rails/generators/named_base.rb#L172
    
    Normally, if using namspaced generator, table name already contains
    namespace. Therefore, adding `controller_class_path` adds extra namespace.
    Since it is special only when explicitly specifying `model-name`, it is
    modified to change the value only when `model-name`is specified.
    
    Follow up of #30729
    4dcb630c
scaffold_generator_test.rb 23.9 KB