【发布时间】:2011-03-03 20:43:59
【问题描述】:
我想在 Rails 应用程序中生成脚手架,像往常一样生成模型,但控制器位于 admin 命名空间内。有可能吗?
【问题讨论】:
我想在 Rails 应用程序中生成脚手架,像往常一样生成模型,但控制器位于 admin 命名空间内。有可能吗?
【问题讨论】:
第一次做完就跑
script/generate scaffold blog
然后重构控制器、视图等。我目前首选的解决方案是:
script/generate scaffold admin::blog
然后重构模型、单元测试和迁移;工作量少了。
如果有更好的答案,我会接受。
【讨论】:
rails g scaffold admin/blog
你可以对 rails
script/generate scaffold Blog title:string
或
script/generate scaffold admin::blog title:string
对于 > 3 的导轨:
rails g scaffold Blog title:string
或
rails g scaffold admin/blog title:string
【讨论】:
这个问题在 stackoverflow 上被广泛询问。我也遇到过这个问题,没有找到标准的解决方案。
所以,我创建了 rails-admin-scaffold gem(目前仅适用于 Rails 4),它使这个过程自动化,并写了 an article 并提供了更详细的解释。希望对某人有所帮助。
【讨论】:
Admin 命名空间——因为 rails 会用同名的模块命名它——因此,这将是一个名称冲突。
对于 Rails 6:
假设你有这样的模型:
rails g model Foo name:string
那么你可以这样做
rails g scaffold_controller Admin/Foo name:string --model-name="Foo"
(指定模型名称会阻止控制器引用模型 Admin::Foo 这将是默认值)
注意:这并不完美;您必须在视图和测试中修复一堆路径错误 - 但它可以让您完成 80% 的工作。
【讨论】: