jac*_*ipe 12
如果您只是想使用自己的控制器模板,可以将其放入 lib/templates/rails/scaffold_controller/controller.rb
scaffold_controller_generator例如,如果要替换代码本身,则控制器脚手架会生成其他类文件.你可以lib/generators/rails/my_scaffold_controller/my_scaffold_controller_generator.rb使用模板创建lib/generators/rails/my_scaffold_controller/templates.
请记住在新的scaffold_controller中指向rails config/application.rb:
config.generators do |g|
g.scaffold_controller = "my_scaffold_controller"
end
Run Code Online (Sandbox Code Playgroud)
对于my_scaffold_controller_generator.rb你可以从下railties宝石副本railties-3.x.x/lib/rails/generators/rails/scaffold_controller,如果你想修改默认行为,或者继承它,如果你只是想添加的功能:
require 'rails/generators/rails/scaffold_controller/scaffold_controller_generator'
module Rails
module Generators
class MyScaffoldControllerGenerator < ScaffoldControllerGenerator
source_root File.expand_path("../templates", __FILE__)
def new_funtionality
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
您可以覆盖Rails用于其生成器的模板.在这种情况下,只需将文件放在其中lib/templates/scaffold_controller/controller.rb并根据需要进行修改即可.下次运行rails g scaffold [modelName]它将获取此新控制器模板并使用它.
这将在创建和自定义Rails生成器官方指南的第6节中介绍.
This seems to have changed slightly with Rails 4. You can see which template the generator will look for in the invoke line when the scaffold is generated, and your template folder name should match this:
rails generate scaffold blub
...
invoke responders_controller
Run Code Online (Sandbox Code Playgroud)
If you're using rails g scaffold_controller blubs the location of the template should be:
lib/templates/rails/scaffold_controller/controller.rb
Run Code Online (Sandbox Code Playgroud)
If you're using rails g scaffold blub the location of the template should be:
lib/templates/rails/responders_controller/controller.rb
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5615 次 |
| 最近记录: |