今天看看怎么写自己的Generators
Rails在以下地方查找用户自定义的Generators:
RAILS_ROOT/lib/generators
RAILS_ROOT/vendor/generators
RAILS_ROOT/vendor/plugins/any_subdirectory/generators
~/.rails/generators
以及以_generator为后缀的Gems
我们看看一个例子代码:
class TumblepostGenerator < Rails::Generator::NamedBase
def manifest
record do |m|
m.class_collisions class_name
m.template "app/controllers/controller_template.rb",
"app/controllers/#{file_name}_controller.rb"
m.template "app/models/model_template.rb",
"app/models/#{file_name}.rb"
m.directory File.join('app/views', file_name)
m.template "app/views/form_template.rhtml",
"app/views/#{file_name}/_form.rhtml"
m.template "app/views/view_template.rhtml",
"app/views/#{file_name}/_view.rhtml"
m.readme "POST_GENERATION_REMINDER"
end
end
end
其中Rails::Generator::NamedBase是ruby script/generator后面带参数的,而Rails::Generator::Base是不带参数的
生成的文件会先用ERB解析,这样我们可以自己构建生成文件的模板,如:
class <%= class_name %>Controller < TumblepostController
def new
@thing = <%= class_name %>.new
end
如果我们要生成数据库Migration,我们可以这样写:
m.migration_template "db/migrations/migration_template.rb", "db/migrate"
事实上已经有很多Generators创建好并以gems部署了,让我搜索一下:
gem search -r generator
分享到:
相关推荐
《Agile Web Development with Rails》是一本经典的Rails开发指南,中文版的出版使得更多的中国开发者能够深入理解并应用敏捷开发方法与Ruby on Rails框架。这本书是Rails开发者的必备参考资料,它详细介绍了如何...
Ruby on Rails helps you produce high-quality, beautiful-looking web applications quickly. You concentrate on creating the application, and Rails takes care of the details., Tens of thousands of ...
书中的"Pragmatic.Bookshelf.Agile.Web.Development.with.Rails.2nd.Edition.Dec.2006.eBook-BBL"可能是该书籍的电子版文件,它包含了全书的章节和内容。读者可以通过这个电子版深入学习Rails开发的各种技巧和最佳...
agile web development with rails 5(英文电子书).............................................................................................................................................................
《Agile Web Development With Ruby On Rails》是两本广受欢迎的书籍,主要涵盖了使用Ruby on Rails框架进行敏捷Web开发的知识。这本书的第1版和第2版分别详细讲解了如何运用敏捷开发方法来构建高效、可扩展且易于...
Rails作为一款基于Ruby语言的Web应用框架,自诞生之初就秉持着敏捷开发的理念。它强调代码的简洁性、易读性和快速迭代能力,这些特性与敏捷开发的原则不谋而合。通过Rails,开发者可以迅速构建功能丰富的Web应用,...
通过上述分析,我们可以看到,《敏捷Web开发与Rails》第三版不仅是一本关于Rails框架的技术书籍,更是一部指导开发者如何运用敏捷方法论进行Web开发的经典之作。无论对于初学者还是经验丰富的开发者而言,本书都具有...
Agile Web Development with Rails 1-14节_ppt(老师发的修正版)
1. **ActiveRecord**: ActiveRecord是Rails的核心组件之一,负责处理数据库交互。在第四版中,对ActiveRecord的查询接口进行了优化,提供了更丰富的查询方法,如`pluck`, `exists?`, 和 `includes`,这些都极大地...
在Rails 3中,最重要的更新之一是Action Pack的整合,它将Action Controller和Action View合并,简化了MVC(模型-视图-控制器)架构。这一变化减少了代码重复,提高了代码的可读性和可维护性。同时,ActiveRecord的...
本书教您如何使用Ruby on Rails开发和部署真正的,具有工业实力的Web应用程序,Ruby on Rails是为诸如Twitter,Hulu,GitHub和Yellow Pages等顶级网站提供支持的开源Web框架。