Rails 自定义脚手架
Rails custom scaffolds
我使用两个模板在我的 Rails 应用程序中创建我的控制器。我已经能够使用 this tutorial 自定义我的脚手架来处理我的模板之一。我想知道是否有办法创建两个脚手架。我希望能够调用 rails generate scaffold1 This
和 rails generate scaffold2 That
并生成我的自定义控制器。
是的,这是可以做到的。
已记录在案 here,我将复习一下要点:
- 'scaffold' 只是一个 'generator'
- 生成器基于 thor
- 发电机本身就有发电机
- 您可以通过在
lib/generators/
中添加文件来相当轻松地创建自己的生成器
页面示例:
The first step is to create a file at
lib/generators/initializer_generator.rb with the following content:
class InitializerGenerator < Rails::Generators::Base
def create_initializer_file
create_file "config/initializers/initializer.rb", "# Add initialization content here"
end
end
然后用 rails generate initializer
调用生成器,就像你 运行 rails generate scaffold
一样(除了上面的初始化器不接受额外的值)
我使用两个模板在我的 Rails 应用程序中创建我的控制器。我已经能够使用 this tutorial 自定义我的脚手架来处理我的模板之一。我想知道是否有办法创建两个脚手架。我希望能够调用 rails generate scaffold1 This
和 rails generate scaffold2 That
并生成我的自定义控制器。
是的,这是可以做到的。
已记录在案 here,我将复习一下要点:
- 'scaffold' 只是一个 'generator'
- 生成器基于 thor
- 发电机本身就有发电机
- 您可以通过在
lib/generators/
中添加文件来相当轻松地创建自己的生成器
页面示例:
The first step is to create a file at lib/generators/initializer_generator.rb with the following content:
class InitializerGenerator < Rails::Generators::Base def create_initializer_file create_file "config/initializers/initializer.rb", "# Add initialization content here" end end
然后用 rails generate initializer
调用生成器,就像你 运行 rails generate scaffold
一样(除了上面的初始化器不接受额外的值)