IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 自定义 Rails 生成器和模板 -> 正文阅读

[开发工具]自定义 Rails 生成器和模板

自定义 Rails 生成器和模板

建议学时:4 小时。

如果你计划改进工作流程,Rails 生成器是必不可少的工具。

使用 rails 命令创建应用时,使用的其实就是一个 Rails 生成器。创建应用之后,可以使用 rails generator 命令列出全部可用的生成器。


$ rails new myapp
$ cd myapp
$ bin/rails generate

你会看到 Rails 自带的全部生成器。如果想查看生成器的详细描述,比如说 helper 生成器,可以这么做:

$ bin/rails generate helper --help

定制工作流程

Rails 自带的生成器十分灵活,可以定制脚手架。生成器在 config/application.rb 文件中配置,下面是一些默认值:


config.generators do |g|
  g.orm             :active_record
  g.template_engine :erb
  g.test_framework  :test_unit, fixture: true
end

使用脚手架生成资源时,如果不想生成默认的 app/assets/stylesheets/scaffolds.scss 文件,可以禁用 scaffold_stylesheet:

config.generators do |g|
  g.scaffold_stylesheet false
end

其次,我们可以不让脚手架生成样式表、JavaScript 和测试固件文件。为此,我们要像下面这样修改配置:


config.generators do |g|
  g.orm             :active_record
  g.template_engine :erb
  g.test_framework  :test_unit, fixture: false
  g.stylesheets     false
  g.javascripts     false
end

应用模板

生成器也可用于生成应用,这种生成器叫“模板”(template)。

下面是可供 Rails 生成器和模板使用的方法。

# 指定应用的一个 gem 依赖。


gem "rspec", group: "test", version: "2.1.0"
gem "devise", "1.1.5"
gem "devise", git: "git://github.com/plataformatec/devise", branch: "master"

# 把 gem 放在一个分组里:
gem_group :development, :test do
  gem "rspec-rails"
end

# 在 Gemfile 中添加指定的源:
add_source "http://gems.github.com"

add_source "http://gems.github.com" do
  gem "rspec-rails"
end

# 在文件中的指定位置插入一段代码:

inject_into_file 'name_of_file.rb', after: "#The code goes below this line. Don't forget the Line break at the end\n" do <<-'RUBY'
  puts "Hello World"
RUBY
end

# 替换文件中的文本:
gsub_file 'name_of_file.rb', 'method.to_be_replaced', 'method.the_replacing_code'

# 在 config/application.rb 文件中应用类定义后面直接添加内容:
application "config.asset_host = 'http://example.com'"


application do
  "config.asset_host = 'http://example.com'"
end

application(nil, env: "development") do
  "config.asset_host = 'http://localhost:3000'"
end

运行指定的 Git 命令:
git :init
git add: "."
git commit: "-m First commit!"
git add: "onefile.rb", rm: "badfile.cxx"

# 在 vendor 目录中放一个文件,内有指定的代码:
vendor "sekrit.rb", '#top secret stuff'

vendor "seeds.rb" do
  "puts 'in your app, seeding your database'"
end

# 在 lib 目录中放一个文件,内有指定的代码:
lib "special.rb", "p Rails.root"

lib "super_special.rb" do
  puts "Super special!"
end

# 在应用的 lib/tasks 目录中创建一个 Rake 文件:

rakefile "test.rake" do
  %Q{
    task rock: :environment do
      puts "Rockin'"
    end
  }
end


# 在应用的 config/initializers 目录中创建一个初始化脚本:
initializer "begin.rb", "puts 'this is the beginning'"

# 这个方法也接受块,期待返回一个字符串:

initializer "begin.rb" do
  "puts 'this is the beginning'"
end

# 运行指定的 Rake 任务:
rake "db:migrate"

# 在应用的根目录中运行 Capistrano 提供的 capify 命令,生成 Capistrano 配置。
route "resources :people"

# 输出模板的 source_path 中某个文件的内容,通常是 README 文件:
readme "README"

Rails 应用模板

应用模板是包含 DSL 的 Ruby 文件,作用是为新建的或现有的 Rails 项目添加 gem 和初始化脚本等。

用法

若想使用模板,调用 Rails 生成器时把模板的位置传给 -m 选项。模板的位置可以是文件路径,也可以是 URL。

$ rails new blog -m ~/template.rb
$ rails new blog -m http://example.com/template.rb

可以使用 app:template 任务在现有的 Rails 应用中使用模板。模板的位置要通过 LOCATION 环境变量指定。同样,模板的位置可以是文件路径,也可以是 URL。

$ bin/rails app:template LOCATION=~/template.rb
$ bin/rails app:template LOCATION=http://example.com/template.rb

Templates API

# template.rb
generate(:scaffold, "person name:string")
route "root to: 'people#index'"
rails_command("db:migrate")
 
after_bundle do
  git :init
  git add: "."
  git commit: %Q{ -m 'Initial commit' }
end
  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-03-03 16:35:43  更:2022-03-03 16:35:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:22:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码