Ruby on Railsを学ぶ vol3 ~ヒーローと俳句~
今回は前回作成したアプリを
Heroku
というサービスを使って一般公開していきます。
今回の目標
- Herokuを知る
- アプリを一般公開する
1. Herokuを知る
Herokuとは一言で言うと
PaaS(Platform as a Service)環境です。
Herokuを使うと何がいいのかというと、
本来であれば開発者がRailsアプリを一般公開するためには、
自分でサーバを立てて、アプリが動くように色んな環境設定をしなければならないのですが、
そういった作業を全部、Herokuが面倒見てくれるということです。
そうする事で開発者はアプリ作成に集中できるという効果もあるわけです。
しかも、Herokuは無料で使うことができます。
(もちろん、いろんな制約があります。)
ちなみにHerokuという名前は
Hero(ヒーロー) + haiku(俳句)
を組み合わせたものらしく、
Rubyエンジニアをヒーローにしたいという願いが込められてるそうです。
俳句の意味は・・・分かりません笑
2. アプリを一般公開する
(1) アカウントの作成
まずは、Herokuを使うためにアカウントを作成します。
Heroku | Sign up
- First name (名前)
- Last name (苗字)
- Email address (メールアドレス)
- Company name (会社名)
- Language (開発言語)
を入力します。
(会社名は特に入力せず、開発言語はRubyを選びました。)
入力し終わったらCreateボタンを押しましょう。
メールが届くのでメール内のURLをクリックしたら登録完了です。
(2) ツールのインストール
まず、bundlerがインストールされていない人は以下を実行します。
$ gem install bundler
既にインストール済みの場合はスキップします。
次はMacのターミナル上でHerokuのコマンドを実行できるようにするためのツールをインストールします。
「Download Heroku Toolbelt for Mac OS X」と書かれたボタンをクリックしダウンロード、インストールします。
特に解説は要らないと思います。
(3) デプロイする
前回作成したhello, world!と表示するアプリをデプロイします。
$ heroku login
を実行し、メールアドレスとパスワードを入力しherokuにログインします。
次は、以下のコマンドでheroku上にアプリケーションを作ります。
$ heroku create
あとは、hello, world!アプリをpushするだけです。
$ git push heroku master
すごく簡単。。
完成したアプリはこちら
https://tumiki-rails-tutorial-hello.herokuapp.com/
大したことしてないけど嬉しい。。
今回の内容はRailsチュートリアルの第1章の内容です。
Railsチュートリアルにはもっと簡単かつ詳しく書かれています。
gitについても書かれているのですが、今回の記事では割愛しています。
もし、
- 私の書いた中途半端な内容では理解できない
- 一からじっくり理解したい
という方はRailsチュートリアルの第1章を見ていただければ、すぐ理解できると思いますので是非読んでみてください。
本当に分かりやすいです。
今回はこの辺で。
Ruby on Railsを学ぶ vol2 ~環境設定とhello, world!~
今回は、
Railsの環境設定と画面に「hello, world」と表示するアプリを作りたいと思います。
今回の目標
- 環境設定
- hello, world!
1. 環境設定
今さらですが、私はMacを使っているので
Macで開発を進めていきます。
まずはrailsのインストール
$ gem install rails -v 4.2.2
現時点(2016/1/13)での最新バージョンは4.2.5でしたが、ここではRailsチュートリアルと同じバージョンに合わせておきます。
(あとでバージョンの違いで動かなくなったら怖いので・・・)
2. hello, world!
次は、画面に「hello, world!」と表示するアプリを作っていきます。
まずは、Railsアプリを作成するコマンドを実行します。
コマンドは以下の通り
$ rails _バージョン_ new アプリ名
今回は以下のように指定しました。
$ rails _4.2.2_ new hello_app
実行すると、アプリに必要なファイルが作成されます。
その中に、Gemfileがあるので、必要に応じて編集します。
ちなみに、Railsチュートリアルに合わせるとこうなります。
source 'https://rubygems.org' gem 'rails', '4.2.2' gem 'sass-rails', '5.0.2' gem 'uglifier', '2.5.3' gem 'coffee-rails', '4.1.0' gem 'jquery-rails', '4.0.3' gem 'turbolinks', '2.3.0' gem 'jbuilder', '2.2.3' gem 'sdoc', '0.4.0', group: :doc group :development, :test do gem 'sqlite3', '1.3.9' gem 'byebug', '3.4.0' gem 'web-console', '2.0.0.beta3' gem 'spring', '1.1.3' end
うーん、
聞いたことのないgemばかり笑
あとで分かるようになるのかな・・・。
編集が終わったら保存して
$ bundle install
を実行します。
ここまで終われば、あとは画面に「hello, world!」と表示するだけです。
先ほどrails new
コマンドを実行した時に作成されたファイルの中に
- application_controller.rb
- routes.rb
というファイルが作成されているので、それぞれ以下のように修正します。
[application_controller.rb]
class ApplicationController < ActionController::Base # Prevent CSRF attacks by raising an exception. # For APIs, you may want to use :null_session instead. protect_from_forgery with: :exception def hello render text: "hello, world!" end end
[routes.rb]
Rails.application.routes.draw do # You can have the root of your site routed with "root" root 'application#hello' end
ここまで終わったら
$ rails server
を実行します。
そしてブラウザで表示(http://localhost:3000/)すると
①routes.rbが読み込まれる
②root コントローラー名#アクション名が実行される
(今回の場合はapplication_controller.rb)
③application_controller.rbが読み込まれる
④helloメソッドが呼ばれる
⑤hello, world!が表示される
といった具合に処理されるようです。
実行結果は以下の通りです。
次回は、今回作成したアプリを一般公開する方法について
書いていきます。
今回はこの辺で。
Ruby on Railsを学ぶ vol1 ~今日からRailsエンジニア~
今日からRuby on Rails(以後Railsと書きます)の勉強をしていきます。
記事のタイトルは「Ruby on Railsを学ぶ」としてみました。
何でRailsを勉強したいかというと、
当ブログのタイトルにもあるように
1人でアプリを作れるように
なるためです。
今、子育て情報アプリを作ろうとしているので
Railsで「子育て情報アプリWeb版」を作ろうという訳です。
(いずれiOS版も作りたいです。)
子育て情報アプリ カテゴリーの記事一覧 - 1人でアプリを作れるように
まずは、Railsの事を何も知らないので
以下のサイトや書籍を利用して学んでいこうと思います。
railstutorial.jp
ゼロからデプロイまでマスターできる無料のドキュメントです。
Railsチュートリアルと呼ばれているようです。
これさえあれば、他の書籍やサイトを見なくてもいいと言われているぐらい
定番中の定番みたいです。
次がこちら
Ruby on Rails 4 アプリケーションプログラミング
- 作者: 山田祥寛
- 出版社/メーカー: 技術評論社
- 発売日: 2014/04/11
- メディア: 大型本
- この商品を含むブログ (5件) を見る
amazonで評価が高かったので買いました。
最後がドットインストール。
dotinstall.com
いつもお世話になってるサイトです。
この3つがあればとりあえず大丈夫かな。
次回から実際に開発に入っていきますが、
基本的には、最初に書いたRailsチュートリアルのサイトを使って進めていこうと思います。
では、今回はこの辺で。