【テックリンク】平日の夜1
時間で学ぶ!
RubyonRails初心者ハ
ンズオン
株式会社リンクバル
WEB部 メディアグループ 中村
アジェンダ
2016/8/19 株式会社 リンクバル 2
• はじめに
• 自己紹介
• 開発環境セットアップ(クラウドIDE, nitrous.io)
• HelloWorld!!
• Scaffoldを利用した開発(時間があれば)
• 弊社の新規事業におけるrailsの導入事例
• Railsを選択するメリット/デメリット
はじめに
2016/8/19 株式会社 リンクバル 3
• ハンズオンの対象レベル
• なにかしら、MVC framework 開発経験がある。
• Ruby on Rails を初めて触る。
• 進め方
• プロジェクターに投影しながら一緒に進めますが、手順書の
スライドを共有いたしますので、遅れてしまった場合も、自分
のペースで学習を進めて頂けます。
• 不明点があれば、弊社スタッフまでお問い合わせ下さい。可
能な範囲でお手伝いいたします。
自己紹介
2016/8/19 株式会社 リンクバル 4
• 中村 祐太(なかむら ゆうた)
• 株式会社リンクバル
WEB部 メディアグループ エンジニア
• 主担当:新規サービス「カップリンク」
開発チームリーダー (Ruby on Rails)
• 経歴:受託開発会社、インターネット広告事業会社を経
て、2015/7/1 リンクバルに入社
• 趣味:旅行、ドライブ、温泉
• Twitter: @ynakayu
Ruby on Rails 入門 ハンズオン
2016/8/19 株式会社 リンクバル 5
開発環境構築
2016/8/19 株式会社 リンクバル 6
• クラウドIDE nitrous.io (ナイトラス・アイオー)の
free planを利用します。
• https://www.nitrous.io/
※Cloud9はクレカ登録必須となっため、今回は利用しません。
開発環境構築 ユーザー登録
2016/8/19 株式会社 リンクバル 7
• ユーザー名
• メールアドレス
• パスワード
• パスワード(確認)
チェック ON
「Sign UPボタン」 押下
チェック ON
https://www.nitrous.io/
開発環境構築 (確認メール受信)
2016/8/19 株式会社 リンクバル 8
クリック
開発環境構築 ワークステーション設定
2016/8/19 株式会社 リンクバル 9
①Freeを選択
①Asiaを選択
①Create Workstation
開発環境構築
2016/8/19 株式会社 リンクバル 10
Workstationが立ち上
がるのを待ちます。
開発環境構築
2016/8/19 株式会社 リンクバル 11
× クリッ
ク
開発環境構築 PJ作成
2016/8/19 株式会社 リンクバル 12
+ クリック
開発環境構築
2016/8/19 株式会社 リンクバル 13
①PJ名を入力(e.x.
techlink)
② Ruby on Rilasを
選択
③ Create Project
をクリック
開発環境構築
2016/8/19 株式会社 リンクバル 14
Projectが立ち上がる
のを待ちます。
開発環境構築
2016/8/19 株式会社 リンクバル 15
「Open IDE」ボタン
をクリック
開発環境構築
2016/8/19 株式会社 リンクバル 16
IDEが立ち上がりまし
た!
開発環境構築
2016/8/19 株式会社 リンクバル 17
コードエディタ
コマンドライン
ファイ
ルエク
スプ
ローラ
PJの作成 (コマンドライン入力)
2016/8/19 株式会社 リンクバル 18
// codeディレクトリに移動
cd ~/code
// exampleというPJを新規作成
rails new example
// exampleディレクトリに移動
cd example
// 必要なライブラリをインストール
bundle install
// rails サーバを起動する。
rails s -b 0.0.0.0
開発環境構築(プレビュー)
2016/8/19 株式会社 リンクバル 19
Preview -> Port 3000 - HTTP
開発環境構築
2016/8/19 株式会社 リンクバル 20
Welcome画面が立ち
上がりました!
HelloWorld !!
2016/8/19 株式会社 リンクバル 21
新しい言語を学ぶ時のお約束、
Webブラウザに HelloWorld!!と表示するプログラムを
書きます!
手順は簡単:
1. コントローラにHelloWorld!!と出力するメソッドを書
く
2. ルーティングを設定する
3. 実行(Preview)する
HelloWorld コントローラー
2016/8/19 株式会社 リンクバル 22
app > controllers > 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
HelloWorld
2016/8/19 株式会社 リンクバル 23
HelloWorld
2016/8/19 株式会社 リンクバル 24
config > routes
Rails.application.routes.draw do
# The priority is based upon order of creation:
first created -> highest priority.
# See how all your routes lay out with "rake
routes".
# You can have the root of your site routed with
"root"
# root 'welcome#index'
root 'application#hello'
HelloWorld
2016/8/19 株式会社 リンクバル 25
HelloWorld実行
2016/8/19 株式会社 リンクバル 26
Preview -> Port 3000 - HTTP
HelloWorld !!
2016/8/19 株式会社 リンクバル 27
これであなたもRailsエ
ンジニアの仲間入りで
す!
Scaffoldを利用した開発
2016/8/19 株式会社 リンクバル 28
• コードを自動で生成するジェネレーター
• CRUD(Create, Read, Update, Delete)アプリ
ケーションのひな形が簡単に作成できる。
• 弊社実務においても、管理画面はScaffoldで生成し
たコードをベースで始めることもある。
Scaffoldを利用した開発
2016/8/19 株式会社 リンクバル 29
• rails g scaffold user name:string
age:integer
名前:user
テーブル: users
・name (文字列型)カラム
・age(整数)カラム
Scaffoldを利用した開発
2016/8/19 株式会社 リンクバル 30
• DBマイグレーション (DBテーブル作成)
• rake db:migrate
※sqlite がデフォルトDB
• Rails サーバ起動
• rails s –b 0.0.0.0
Scaffoldを利用した開発
2016/8/19 株式会社 リンクバル 31
• プレビュー Preview -> Port 3000 - HTTP
Scaffoldを利用した開発
2016/8/19 株式会社 リンクバル 32
•URLをブラウザに入力
•http://xxxxx.nitrosapp.com/user
s
Scaffoldを利用した開発
2016/8/19 株式会社 リンクバル 33
• Create
Scaffoldを利用した開発
2016/8/19 株式会社 リンクバル 34
• Read
Scaffoldを利用した開発(更新)
2016/8/19 株式会社 リンクバル 35
• Update
Scaffoldを利用した開発
2016/8/19 株式会社 リンクバル 36
• Delete
Scaffoldを利用した開発
2016/8/19 株式会社 リンクバル 37
• list
新規事業におけるrailsの導入事例
2016/8/19 株式会社 リンクバル 38
• カップリンク iOS / Android / Web(予定)
https://couplink.jp/
Railsを選択するメリット/デメリット
2016/8/19 株式会社 リンクバル 39
• メリット
• 実用的な、Gem(ライブラリ)が充実。工数削減。
• 認証系Devise, 簡易管理画面 active_admin , etc
• ネット上の情報が豊富で問題解決がしやすい
• stackoverflow 等
• Rails やりたいエンジニア、スキルアップしたいという
志が高いケースが多い。
• 事業の成功にも影響しそうな雰囲気
• デメリット
• フレームワークの進化が早い。
• 又、セキュリティ対策のためにもバージョンアップは常に意識。
• バージョンをあげると、gemの依存関係で動作しなくなること
• そのため、テストケース書くのは必須か。
おわりに
2016/8/19 株式会社 リンクバル 40
リンクバルでは一緒に自社サービスを開発するRailsエン
ジニアを募集中です!
寿司ランチ採用始めました!
http://linkbal.co.jp/employ/

【テックリンク】平日の夜1時間で学ぶ!RubyonRails初心者ハンズオン