如何创建大量的Rails应用程序

94 阅读2分钟

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应用程序开始运行,不需要创建数据库,也不需要建立一个默认的欢迎页面:我们的应用程序已经准备好进行实验了。