1.动机
在[BootrAils],我们每天都在使用这个脚本(工作!)。它允许你:
- 抓住任何概念。
- 迅速隔离一个错误。
- 使用新的Rails功能。
...没有任何副作用。
对初学者来说,这也是提高你的Ruby-on-Rails技能的绝佳方式。你越是从头开始创建新的应用程序,你就越能理解Rails的目录结构、理念和内部结构。
2.技巧
在你基于linux的电脑上打开~.bash_profile 。
我们将创建一个bash函数,名为cnra(首字母缩写,意思是 "创建新的rails应用程序")。缩写是非常方便的,可以避免记住每个快捷方式。
# inside ~.bash_profile
#
# Usage :
# $> cnra myapp 7.0.0 --minimal --database=postgresql
#
cnra ()
{
# create dir, dive into dir, require desired Rails version
mkdir -p -- "$1" && cd -P -- "$1"
echo "source 'https://rubygems.org'" > Gemfile
echo "gem 'rails', '$2'" >> Gemfile
# install rails, create new rails app
bundle install
bundle exec rails new . --force ${@:3:99}
bundle update
# Create a default controller
echo "class HomeController < ApplicationController" > app/controllers/home_controller.rb
echo "end" >> app/controllers/home_controller.rb
# Create a default route
echo "Rails.application.routes.draw do" > config/routes.rb
echo ' get "home/index"' >> config/routes.rb
echo ' root to: "home#index"' >> config/routes.rb
echo 'end' >> config/routes.rb
# Create a default view
mkdir app/views/home
echo '<h1>This is h1 title</h1>' > app/views/home/index.html.erb
# Create database and schema.rb
bin/rails db:create
bin/rails db:migrate
}
注意这个技巧${@:3:99} ,意思是 "所有剩余的CLI args,从第三条到最后一条"。
现在输入
$> source ~/.bash_profile
这样你的终端就会知道你的.bash_profile 里面发生了什么变化。
3.使用方法
打开你的终端
$> cnra myapp 7.0.0 --minimal -d=postgresql
第1个CLI参数是 "myapp":新应用程序的名称 第2个CLI参数是7.0.0:你想尝试的Rails版本 第3个CLI参数是 --minimal -d=postgresql:PostGre是一个生产就绪的数据库,你可以轻松地在本地使用。
注意,--minimal 和-d=postgresql 是选项。
4.更进一步
我们个人喜欢minimal标志(以避免所有我们可能不需要的默认宝石),以及 "postgresql "数据库--一个在Ruby-on-Rails世界中生产就绪、广泛使用的数据库。因此,我们在之前的基础上使用另一个快捷方式。
cnra7mp() {
cnra myapp 7.0.0 --minimal -d=postgresql
}
现在,每次我们想用Rails尝试一些东西时,我们所要做的就是下面这些。
$/workspace> cnra7mp
$/workspace/myapp> bin/rails server
然后就可以了!一个新的Rails应用程序开始运行,不需要创建数据库,也不需要建立一个默认的欢迎页面:我们的应用程序已经准备好进行实验了。