脚手架采用深层嵌套路线

时间:2013-12-07 20:08:32

标签: ruby-on-rails ruby ruby-on-rails-3 scaffolding

所以我有一个项目有这样的路线:

的routes.rb

resources :projects do
  resources :messages

  resources :lists do
    resources :tasks
  end
end

但是,我想为我创建的每个任务添加时间跟踪,将我的路由转换为:

的routes.rb

resources :projects do
  resources :messages

  resources :lists do
    resources :tasks do
      resources :timetracks
    end
  end
end

我想构建我的MVC的基础知识,然后进行必要的更改或编辑,但我如何使用脚手架以使我的控制器和视图符合我的路由?或者甚至可能吗?


进一步详述,当我将其输入控制台时:

rails generate scaffold timetrack hours:float date:datetime description:string task:references

我得到了正常的脚手架文件,但所有路由的格式都是这样的:

http://localhost:3000/timetracks/

真的,我希望他们成为:

http://localhost:3000/projects/1/lists/1/tasks/1/timetracks/

我知道你可以在控制器和视图中手动执行此操作,但在执行我的脚手架时,有什么办法可以生成这个吗?

1 个答案:

答案 0 :(得分:7)

据我所知,没有办法通过标准的rails3脚手架创建嵌套路由,但是,我做了一个快速搜索并提出了这个宝石:https://github.com/amatsuda/nested_scaffold

作为参考,我通过类似的问题找到了它:Nested scaffold generator for Rails 3?

希望有所帮助。