【勉強会】 はじめてのruby on rails 4入門

34
©2016 Y.Nakamura 勉勉勉勉勉勉勉勉 Ruby on rails 4 勉勉 2016/11 勉勉勉勉

Upload: yuta-nakamura

Post on 14-Apr-2017

158 views

Category:

Software


2 download

TRANSCRIPT

Page 1: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

【勉強会】はじめての Ruby on rails 4

入門

2016/11中村祐太

Page 2: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

アジェンダ

1. 自己紹介2. はじめに3. Ruby on Rails について4. 開発環境セットアップ ( クラウド IDE)5. HelloWorld!6. はじめての ToDo アプリ開発!

Page 3: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

自己紹介

• 中村 祐太 (なかむら ゆうた)• 経歴:受託開発会社、インターネット広告事

業会社、イベント EC 事業会社の新規サービス開発等。

• 趣味:旅行、ドライブ、勉強会参加・開催。• Twitter: @ynakayu• FB:

https://www.facebook.com/yuta.nakamura.599

Page 4: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

はじめに

• ハンズオンの想定ターゲット– PHP 等の MVC framework の開発経験がある。– Ruby on Rails を初めて勉強する。

• ハンズオンの進め方–プロジェクタに講師 PC の操作を投影しなが

ら、各自 PC を操作して学習を進めます。–スライドと完成版ソースコードは共有します。

Page 5: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

Ruby on Rails について 1/2

• 少ないコード量で効率的に開発ができる人気のフレームワーク。

• 2011 年以降に創業しているスタートアップ企業の使用言語は PHP と Ruby がほぼ半分。※ 1出典:※ 1 日本のスタートアップは Ruby がお好き?  PHP と人気ほぼ互角に | TechCrunchhttp://jp.techcrunch.com/2014/08/25/jp20140825wantedly/

Page 6: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

Ruby on Rails について 2/2

出典:※ 2 プログラマー年収ランキング 2016 !| みんなのスタンバイ https://jp.stanby.com/media/programming_ranking/

3 位

Page 7: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

開発環境構築

• 時間削減のため、クラウド IDE codeanywhere の無料プランを使用。

• https://codeanywhere.com

参考(同様のサービス)• Cloud9 : フリープランでもクレジットカー

ド必須のため、今回は選択肢から外しました。

Page 8: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

Codeanywhere トップhttps://codeanywhere.com

Page 9: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

Codeanywhere 価格

Page 10: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

Codeanywhere ユーザー登録

入力:Emailパスワード

クリック

チェック

Page 11: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

Codeanywhere アカウント作成完了

エディタへ

Page 12: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

コンテナの作成

①②

※ ③ ・・・ Ruby / Centos 6.5 を選択

Page 13: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

セットアップ完了

Page 14: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

HelloWorld!• Hello World! とブラウザに表示するアプ

リを開発します。

Page 15: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

Hello World PJ の作成

• PJ hello を新規作成$ rails new hello

• hello ディレクトリに移動$ cd hello

Page 16: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

動作確認

• rails サーバを起動する$ rails s –b 0.0.0.0

• ブラウザで下記 URL を開く• http://xxxxx.codeanyapp.com:3000

• ※ xxxxx の部分は各自異なる。– IED の Project 名を右クリック > info から確認。

• ※ port 3000 を指定。 (:3000) 。

Page 17: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

この画面が出れば PJ の作成成功 .

Page 18: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

フォルダ構成

• <IDE を見ながらフォルダ構成を説明 >

• 参考 URL「 Rails の基礎知識 | Rails ドキュメント」http://railsdoc.com/rails_base※ フォルダ構造の項を参照。

Page 19: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

HelloWorld! 手順

1. コントローラに HelloWord! と出力するメソッドを記載

2. ルーティングを記載3. (Rails サーバ起動 )4. ブラウザで動作確認

Page 20: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

HelloWord コントローラー編集ファイル: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

Page 21: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

Hello World ルーティング設定

URL と実行するべきアクションを設定する仕組み。

編集ファイル: app/config/routes.rb

Rails.application.routes.draw doroot 'application#hello’〜略〜

Page 22: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

Hello World 動作確認

• rails サーバを起動する$ rails s –b 0.0.0.0

• ブラウザで下記 URL を開く• http://xxxxx.codeanyapp.com:3000

• ※ xxxxx の部分は各自異なる。– Project 名を右クリック > info から確認。

• ※ port 3000 を指定。 (:3000) 。

Page 23: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

HelloWorld• Hello World! とブラウザに表示されれば

OK! あなたも rails エンジニアの仲間入りです!

Page 24: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

ToDo 管理アプリ• ToDo を管理するアプリを作成します。Rails 入門する上の、エッセンスがつまっています。

– ToDo 一覧– 新規追加– 編集– 削除– 完了 / 未完了設定 (Ajax)

– DB には sqlite を使用

Page 25: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

ToDo 管理アプリ開発について

• < プロジェクターに PC の操作画面を写しながら、開発手順を説明します >

• 必要になるコマンドは、次ページ以降に、資料として記載。

• 完成版ソースコード共有します。https://github.com/ynakayu/todoapp

Page 26: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

資料 : PJ 作成 ■ workspace ディレクトリへ移動$ cd ~/workspace/

■ PJを新規作成$ rails new todoapp

■ 作成されたディレクトリ移動$ cd todoapp/

■ therubyracer有効にする。 ※ 参考: http://d.hatena.ne.jp/suu-g/20121222/1356189597 Gemfile 編集# gem 'therubyracer',  platforms: :ruby  ↓ gem 'therubyracer',  platforms: :ruby

// 必要なGemをインストール

$ bundle install

Page 27: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

資料:動作確認

• rails サーバを起動する$ rails s –b 0.0.0.0

• ブラウザで下記 URL を開く• http://xxxxx.codeanyapp.com:3000

• ※ xxxxx の部分は各自異なる。– Project 名を右クリック > info から確認。

• ※ port 3000 を指定。 (:3000) 。

Page 28: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

資料: Task コントローラー作成 コマンド

// コントローラー作成$ rails g controller Tasks

// モデル作成$ rails g model Task title:string done:boolean 

Page 29: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

資料:マイグレーションファイル編集

migrations.doneのデフォルト値、default falseを追加。 編集ファイル等 app/db/migrate/xxxx_create_tasks.rb

class CreateTasks < ActiveRecord::Migration   def change     create_table :tasks do |t|       t.string :title       t.boolean :done, default: false       t.timestamps     end   end end

Page 30: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

資料: DB マイグレーション実行

$ rake db:migrate 

■ 参考文献マイグレーション | Rails ドキュメントhttp://railsdoc.com/migration

                        

Page 31: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

資料: DB スキーマ確認

$ rails db  sqlite> .schema                                                                                   ■rails db を終了 sqlite> .exit

Page 32: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

資料: DB 初期データ追加

$ rails console                                                                                             2.1.2 :001 > Task.create(title: “task1")                                                                                                                              2.1.2 :002 > Task.create(title: ”task2")                                                     

■ 確認2.1.2 :002 > Task.all

■rails console終了時 2.1.2 :003 > quit    

Page 33: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

資料:ルーティングの確認

$ rake routes Prefix Verb URI Pattern Controller#Action tasks GET /tasks(.:format) tasks#index POST /tasks(.:format) tasks#create new_task GET /tasks/new(.:format) tasks#new edit_task GET /tasks/:id/edit(.:format) tasks#edit task GET /tasks/:id(.:format) tasks#show PATCH /tasks/:id(.:format) tasks#update PUT /tasks/:id(.:format) tasks#update DELETE /tasks/:id(.:format) tasks#destroy root GET / tasks#index POST /tasks/:id/toggle(.:format) tasks#toggle

Page 34: 【勉強会】 はじめてのRuby on Rails 4入門

©2016 Y.Nakamura

資料 : 学習の参考サイト等

• Rails ドキュメント– http://railsdoc.com/

• Rails ガイド– http://railsguides.jp/

• Ruby on Rails チュートリアル– http://railstutorial.jp/

• Ruby on Rails 4 アプリケーションプログラミング 山田 祥寛 ( 著 )