【发布时间】:2012-10-29 03:55:57
【问题描述】:
我的路由/资源和控制器出现错误。
我在 routes.rb 中有以下内容:
# routes.rb
resources :users do
resource :schedule
end
我在 controllers/users/ 中设置了一个 schedule_controller.rb,我认为它应该是这样的:
class Users::ScheduleController < ApplicationController
# Controller methods here...
end
运行 rake:routes 显示
user_schedule POST /users/:user_id/schedule(.:format) schedules#create
new_user_schedule GET /users/:user_id/schedule/new(.:format) schedules#new
edit_user_schedule GET /users/:user_id/schedule/edit(.:format) schedules#edit
GET /users/:user_id/schedule(.:format) schedules#show
PUT /users/:user_id/schedule(.:format) schedules#update
但是,导航到 /users/:user_id/schedule 会返回以下错误:
uninitialized constant SchedulesController
我对问题的唯一想法是与嵌套资源或声明单个资源有关,我在某个地方出错了。
我正在使用助手
new_user_schedule_path(current_user)
链接到我的“新”视图时。
【问题讨论】:
-
观察 ScheduleController 不是 SchedulesController。
-
我在搜索标题中的错误时遇到了这个问题,但没有遇到 nested 与 namespaced 资源问题。在我的情况下,控制器文件没有放在正确的文件夹中。
-
在我的情况下,控制器文件名的格式不正确。文件名应为“schedules_controller.rb”
标签: ruby-on-rails ruby ruby-on-rails-3.2