由于 rake 路线给出了我访问过的确切路线,页面显示
Routing Error uninitialized constant TasksController Did you mean? AppsController
在routes.rb
我写
resources :users do
resources :tasks do
collection do
post 'tasks-info', to: 'users/tasks#tasks_info', format: 'json'
end
end
end
而tasks_controller.rb在app/controllers/users
文件夹下
def show
end
show.html.slim正在app/views/users/tasks
foler
我访问的URL是http://localhost:3000/users/1/tasks/1
用rake routes
包括user_task_path GET /users/:user_id/tasks/:id(.:format) tasks#show
更新:问题已解决,如果您有同样的问题,请参考下面的评论(我根据自己的理解进行了总结,但不确定是否完全正确)!或者查看下面的答案,因为工程师和斯科特的答案都应该有效。
关键是rails routes
告诉你的是:
user_task_path GET /users/:user_id/tasks/:id(.:format) tasks#show
最后一部分告诉您它正在控制器中寻找show
方法tasks
——即TasksController
在控制器层次结构的顶层。
因此,您需要将其放置TasksController
在app/controllers/users/tasks_controller.rb
,而不是放置在app/controllers/tasks_controller.rb
。
控制器的“嵌套”由params
包含:user_id
和调用:id
时的对象处理TasksController#show
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句