Rails:不支持的控制器名称

问题描述 投票:0回答:1

我命名路线的方式有什么问题?

我是否需要将文件夹结构和模块名称更改为

:car_registration

/app/controllers/car_registration/steps_controller.rb

如果可能的话,我更愿意使用我的格式。

路线

  scope module: 'CarRegistration' do
    resources :steps
  end

调节器

/app/controllers/car registration/steps_controller.日本

module CarRegistration
  class StepsController < ApplicationController
    include Wicked::Wizard
    steps :step1, :step2, step3

    def show
      @form_object_model ||= form_object_model_for_step(step)
      render_wizard
    end

    def update
      @form_object_model = form_object_model_for_step(step)
      render_wizard @form_object_model
    end

    private

    def form_object_model_for_step(step)
      "CarRegistration::#{step.camelize}".constantize.new      
    end

  end
end

错误

“CarRegistration / steps”不是受支持的控制器名称。这可能导致潜在的路由问题。见http://guides.rubyonrails.org/routing.html#specifying-a-controller-to-use(ArgumentError)

ruby-on-rails routes ruby-on-rails-5
1个回答
2
投票

看起来你至少有两个问题。您使用的文件夹结构如下:

app/controllers/CarRegistration/steps_controller.rb

这是非常规的。相反,它应该是:

app/controllers/car_registration/steps_controller.rb

然后,您的路线应如下所示:

scope module: :car_registration do 
  resources :steps
end
© www.soinside.com 2019 - 2024. All rights reserved.