Cloud9でのrailsの始め方
Ruby on Railsの開発環境
CodeCampでのRuby on RailsのカリキュラムはCloud9というサービスを利用します。
まずは新しいワークスペースを作成しましょう。
Workspace nameは任意で構いませんが、Publicにチェックを入れましょう。
また、choose a templateはCustomを選択して下さい。
上記画面がワークスペースとなります。赤線の囲われた部分がターミナルと呼ばれる、コマンドを実行するエリアになります。
Ruby on Railsで開発する上では、あらかじめ用意された数種類のコマンドを実行することで、ファイルの生成やサーバーの起動等を行います。コマンドの実行については、あまり馴染みのない行為だとは思いますが、使用するコマンドは数種類に絞られるので身構える必要はありません。
それでは下記のコマンドを実行し、Ruby on Railsをインストールして下さい。
$ gem install rails
本カリキュラムでは、コマンドを記載する際は$(ドル)を先頭に付加して記述するものとします。以降、$が付く行はコマンドと解釈して下さい。
すると上の図のように表示されるはずです。下記のコマンドを打って、正常にインストールされているか確認します。
$ rails -v
Rails 4.x.x
のように表示されれば、Ruby on Railsのインストールが成功したことになります。
※x部分には数値が入ります
続けて下記のコマンドを実行してください。
$ rails new xxx
※上記コマンドは、新しくRuby on Railsのプロジェクトを作成するという意味になります。
xxxの部分には、任意の英字を入れてください。カリキュラム上は、「demo」と記述して進めます。
すると下記のように表示されます。
※内容は環境により若干異なります。
~/workspace $ rails new demo
create
create README.rdoc
create Rakefile
create config.ru
create .gitignore
create Gemfile
create app
create app/assets/javascripts/application.js
create app/assets/stylesheets/application.css
create app/controllers/application_controller.rb
create app/helpers/application_helper.rb
create app/views/layouts/application.html.erb
create app/assets/images/.keep
create app/mailers/.keep
create app/models/.keep
create app/controllers/concerns/.keep
create app/models/concerns/.keep
create bin
create bin/bundle
create bin/rails
create bin/rake
create bin/setup
create config
create config/routes.rb
create config/application.rb
create config/environment.rb
create config/secrets.yml
create config/environments
create config/environments/development.rb
create config/environments/production.rb
create config/environments/test.rb
create config/initializers
create config/initializers/assets.rb
create config/initializers/backtrace_silencers.rb
create config/initializers/cookies_serializer.rb
create config/initializers/filter_parameter_logging.rb
create config/initializers/inflections.rb
create config/initializers/mime_types.rb
create config/initializers/session_store.rb
create config/initializers/wrap_parameters.rb
create config/locales
create config/locales/en.yml
create config/boot.rb
create config/database.yml
create db
create db/seeds.rb
create lib
create lib/tasks
create lib/tasks/.keep
create lib/assets
create lib/assets/.keep
create log
create log/.keep
create public
create public/404.html
create public/422.html
create public/500.html
create public/favicon.ico
create public/robots.txt
create test/fixtures
create test/fixtures/.keep
create test/controllers
create test/controllers/.keep
create test/mailers
create test/mailers/.keep
create test/models
create test/models/.keep
create test/helpers
create test/helpers/.keep
create test/integration
create test/integration/.keep
create test/test_helper.rb
create tmp/cache
create tmp/cache/assets
create vendor/assets/javascripts
create vendor/assets/javascripts/.keep
create vendor/assets/stylesheets
create vendor/assets/stylesheets/.keep
run bundle install
Fetching gem metadata from https://rubygems.org/...........
Fetching version metadata from https://rubygems.org/...
Fetching dependency metadata from https://rubygems.org/..
Resolving dependencies...
Using rake 10.4.2
Using i18n 0.7.0
Installing json 1.8.3
Installing minitest 5.8.3
Using thread_safe 0.3.5
Using tzinfo 1.2.2
Using activesupport 4.2.5
Using builder 3.2.2
Using erubis 2.7.0
Installing mini_portile2 2.0.0
Installing nokogiri 1.6.7.1
Using rails-deprecated_sanitizer 1.0.3
Using rails-dom-testing 1.0.7
Using loofah 2.0.3
Using rails-html-sanitizer 1.0.2
Using actionview 4.2.5
Using rack 1.6.4
Using rack-test 0.6.3
Using actionpack 4.2.5
Using globalid 0.3.6
Using activejob 4.2.5
Installing mime-types 2.99
Using mail 2.6.3
Using actionmailer 4.2.5
Using activemodel 4.2.5
Using arel 6.0.3
Using activerecord 4.2.5
Installing debug_inspector 0.0.2
Installing binding_of_caller 0.7.2
Using bundler 1.8.4
Installing byebug 8.2.1
Installing coffee-script-source 1.10.0
Installing execjs 2.6.0
Installing coffee-script 2.4.1
Using thor 0.19.1
Using railties 4.2.5
Installing coffee-rails 4.1.1
Installing concurrent-ruby 1.0.0
Using multi_json 1.11.2
Installing jbuilder 2.4.0
Installing jquery-rails 4.0.5
Installing sprockets 3.5.2
Installing sprockets-rails 3.0.0
Using rails 4.2.5
Installing rdoc 4.2.1
Installing sass 3.4.20
Installing tilt 2.0.2
Installing sass-rails 5.0.4
Installing sdoc 0.4.1
Installing spring 1.6.1
Installing sqlite3 1.3.11
Installing turbolinks 2.5.3
Installing uglifier 2.7.2
Installing web-console 2.2.1
Bundle complete! 12 Gemfile dependencies, 54 gems now installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.
Post-install message from rdoc:
Depending on your version of ruby, you may need to install ruby rdoc/ri data:
<= 1.8.6 : unsupported
= 1.8.7 : gem install rdoc-data; rdoc-data --install
= 1.9.1 : gem install rdoc-data; rdoc-data --install
>= 1.9.2 : nothing to do! Yay!
run bundle exec spring binstub --all
* bin/rake: spring inserted
* bin/rails: spring inserted
実行すると、上記のように表示されます。たくさんのファイルが自動的に生成されたのが解ります。
これで、Ruby on Railsで開発を始める準備が整いました。
Cloud9の画面左側(ファイルシステム)には、様々なファイルとフォルダ(以降ディレクトリと呼ぶ)が生成されていることがわかります。
簡単なlinuxコマンド解説
基本的なコマンド
Ruby on Railsでの開発は、複数のあらかじめ用意されたコマンドを実行しながら行います。その中でも主要なコマンドをここでは確認していきます。
・ファイル / ディレクトリの一覧を表示する
$ ls
上記コマンドを実行すると、ディレクトリに、どんなファイルまたはディレクトリが存在しているのかを確認できます。下記が、lsコマンドを実行した際の結果です。
※lsとはist segmentsの略になります。
README.md demo/
上記の結果では、README.mdというファイルとdemoというディレクトリが存在しているという意味になります。ファイルとディレクトリの見分け方ですが、拡張子でも見分けることができますが、スラッシュが名前の後ろに付加されているかどうかで見分ける方が確実です。
上記のコマンドでは、結果表示が横並びになってしまうので、もう少し分かりやすく表示するには下記のコマンドを実行します。
$ ls -l
上記コマンドは、 $ ls に対して l オプションを指定したことを意味します。(オプションはハイフンで指定します)
l ( 英字のエル )オプションを指定することで、ファイル・ディレクトリを横並びではなく縦並びで表示し、付随する情報も同時に表示してくれます。
※現時点では、ファイル名と更新時間以外の項目は気にしなくても構いません。
-rw-rw-r 1 ubuntu ubuntu 699 Sep 30 13:29 README.md
drwxr-xr-x 13 ubuntu ubuntu 4096 Jan 22 18:42 demo/
・現在参照しているディレクトリの確認
$ pwd
上記コマンドを入力することで、現在参照しているディレクトリがどの階層なのかを確認できます。実行すると下記のように表示されるはずです。
※pwdはprint orking directryの略です。
/home/ubuntu/workspace
上記の表示は、現在workspaceというディレクトリ内を参照しているという意味になります。
・ディレクトリの移動
$ cd xxx
cdというコマンドは、ディレクトリを移動する際に使用するコマンドです。
※cdはchange directoryの略です。
xxxにはディレクトリ名を記述します。
例えば、◯◯◯というディレクトリに移動する際は、$cd ◯◯◯と入力します。
ただし移動できる範囲は、lsコマンドで表示されるディレクトリのみになりますので注意して下さい。cdコマンドで移動できない場合は、lsコマンドで移動可能な範囲かを確認する必要があります。
$ cd ./
前述のようにcdはディレクトリを移動するコマンドですが、 ./ は、現在のディレクトリを表すので、上記コマンドを打った場合には、正確にはディレクトリは移動せず、現在のディレクトリに留まります。 ./ が現在のディレクトを指すということは必ず覚えておいて下さい。
$ cd ../
このコマンドも前述までと同様に、ディレクトリを移動する cd というコマンドですが、
../ と記述することで、1つ上のディレクトリ階層に上がる(戻る)という意味になります。
../ が、1つ上のディレクトリを指すということも、必ず覚えておく必要があります
$ cd /
このコマンドもディレクトリを移動するコマンドなのですが、./ や、 ../と違い、 / (スラッシュ)を単独で使用すると、ディレクトリ階層の最上位層を意味します。この最上位層をルートディレクトリと呼びます。
前項で $ rails new xxx と実行した際に自動生成された、xxxというディレクトリはRuby on Railsのルートディレクトリと呼びます。
/ ( ルートディレクトリ ) と、Ruby on Railsのルートディレクトリは、名前は同じような感じですが区別して覚えるようにして下さい。
下の図が、Cloud9の全体の簡易的なディレクトリ構造です。
■cd コマンド
cdコマンドを利用することで、ディレクトリを縦横無尽に移動することができます。
ただし慣れないうちは、自分が現在どのディレクトリを参照しているのか分からなくなるといった事態に陥りがちです。特に、$ cd / を実行してしまうと、慣れないうちは戻ってくることが難しくなってしまうので注意しましょう。 |
■ コマンドについて
cd コマンドだけでは、現在どの階層を参照しているのかがなかなか分かりづらいものです。pwdコマンドやlsコマンドを随時使用し、ディレクトリ階層内で迷子にならないようにしましょう。 |
■ コマンド入力補助について
コマンドを入力する際にキーボードの↑キーを押下することで直前に入力したコマンドを表示することができます。( 実行はエンターを押下 )
また、コマンドの入力中にtabキーを押下することで入力補完が行われます。
例えば $ cd app/controllers と入力したい場合、$ cd app/con と入力した状態でtabキーを押下してみて下さい。 $ cd app/controllers と表示されます。このように、ターミナルには入力を補助する機能があるので、ぜひ使用しながら身につけて下さい。
|
Ruby on Railsの起動
前項で学習した基本的なコマンド
$ cd
$ pwd
$ ls
Ruby on Rails特有のコマンドが数種類存在します。
$ rails 〜
$ bundle 〜
$ rake 〜
といったコマンドがよく使われるコマンドです。
概要としては、
$ rails 〜
上記はRuby on Rails特有のコマンドであり、前述したMVCアーキテクチャのModel、View、Controller等の生成やサーバーの起動に利用します。(後述)
$ bundle 〜
上記は後述するgemファイルに付随するプログラムの実行に使用します。
$ rake 〜
上記は後述するデータベース関連に付随するプログラムの実行に使用します。
ほとんどが後述になってしまいますが、上記を利用することでスムーズに開発することができるので、ぜひ概要だけでも覚えておきましょう。
本項では、Ruby on Railsの起動ブラウザでの確認までを行います。
Ruby on Railsの起動の前に、データベースへの接続を確立させなければならないので、Ruby on Railsのルートディレクトリ(ここではdemoディレクトリ)へcdコマンドで移動し、下記のコマンドを実行して下さい。
$ rake db:create
このコマンドを実行することで、アプリケーションの実行に必要なデータベースが作成されます。後述しますが、config/database.ymlというファイルの記述に従い、データベースが作成されます。
上記コマンドを実行後、次のコマンドを実行して下さい。
※rake や railsのコマンドはRuby on Railsのルートディレクトリでのみ実行できます。
$ rails server -b 0.0.0.0 -p 8080
実行後、上の画像のように表示されます。実行中はコマンドの入力ができない状態になるのでCtrl + C を押下することで、コマンドを入力できる状態に戻すことが可能です。
・ブラウザでの動作確認
ブラウザで確認するには、下の図の赤枠部分に表示されているURLをクリックして下さい。
上の図の画面がブラウザで開かれれば成功です。
この画面は、Ruby on Railsの初期表示画面になります。
表示が確認できた後、Cloud9上のコマンド入力エリア内でCtrl + Cを押下して下さい。
Exitingと表示され、再度コマンドが入力可能な状態になっています。
この状態で、先ほどブラウザで開いたRuby on Railsの画面を再読み込みして下さい。
下の図のような画面が表示されるはずです。
この画面は、Ruby on Railsの画面ではなく、Cloud9があらかじめ用意したエラー画面になります。意味としては、何もアプリケーションが動いていないことを表しています。
このように、Cloud9上でRuby on Railsのアプリケーションを起動するには、前述の
$ rails server -b 0.0.0.0 -p 8080
というコマンドを毎回実行する必要があることを覚えておいて下さい。
サーバーを起動する(立ち上げる)と呼ばれる動作です。
また、その間に他のコマンドを入力することができなくなるので、停止する方法( Ctrl + C )も併せて必ず覚えておいて下さい。
$ rails server -b 0.0.0.0 -p 8080
このコマンドの内容についてですが、-b0.0.0.0や-p8080はいわゆるオプションになります。railsserverというアプリケーションを起動するコマンドに対して、-bでIPを指定し、-pでportを指定しています。現時点では少し難しい話に逸れてしまうので、ここでは割愛させていただきます。
■Ruby on Railsのアプリケーションを起動するには
・起動する → コマンドが入力できない状態になる
$ rails server -b 0.0.0.0 -p 8080
※ WEBrickというRubyで作られたwebサーバーが内部的に起動します。
・停止する → コマンドが入力できる状態になる
Ctrl + C |