rails初心者レッスン lesson1 3rd edition

25
Rails3 初心者レッスン by Minami.rb 3 3 Rails3.2 Rails3.2 Lesson 1

Upload: urimaro

Post on 25-May-2015

1.492 views

Category:

Technology


2 download

DESCRIPTION

Minami.rb

TRANSCRIPT

Page 1: Rails初心者レッスン lesson1 3rd edition

Rails3 初心者レッスンby Minami.rb

第第33版版Rails3.2Rails3.2

Lesson 1

Page 2: Rails初心者レッスン lesson1 3rd edition

このレッスンでやること一覧

1. Railsで何をする?どうしてRails?2. 作ってみよう事始め3. プロジェクトとテーブル4. Railsの役割分担5. Railsのディレクトリ構成6. scaffold(デフォルト)でのURL7. リレーションを考える8. 日本語対応9. 見た目をキレイに10.プラグインを使う11.ちょっとRubyに働いてもらう12.herokuに公開しよう

Page 3: Rails初心者レッスン lesson1 3rd edition

この初心者レッスンを全部聞くと…

簡単なものなら、自分で作れるようになるでしょう

Railsがわかった気になるでしょう

Minami.rb初心者レッスンの講師になれます

↑が正しいかは皆さんの判断に任せます

Page 4: Rails初心者レッスン lesson1 3rd edition

Rails とは? (1)

e.g. 以下のような処理を簡単に作れるようにしてくれる

・データにアクセスする処理

・画面を切り替える処理

・画面

Webアプリケーション作りを支援してくれる枠組み

⇒ Webアプリケーションフレームワーク

Page 5: Rails初心者レッスン lesson1 3rd edition

Rails とは? (2)

有名なRails製サイトtwitter(※) http://twitter.com/クックパッド http://cookpad.com/食べログ http://tabelog.com/

※ 最近はScalaかも

Page 6: Rails初心者レッスン lesson1 3rd edition

どうして Rails? (1)

・Webアプリケーションに必要なものがそろっている

・フレームワーク

・DB

・Webサーバ

・アプリケーションとDBを簡単に連携する機能

Page 7: Rails初心者レッスン lesson1 3rd edition

どうして Rails? (2)

・便利なコマンド

コマンドを実行するだけでいろいろな機能を作ってくれる

・データにアクセスする処理

・画面

・etc

Page 8: Rails初心者レッスン lesson1 3rd edition

作ってみよう事始め

・何を作る?

・どんなデータ?

・どんな画面?

Page 9: Rails初心者レッスン lesson1 3rd edition

アプリケーションの新規作成

アプリケーション作成 $ rails new アプリケーション名 e.g. rails new ticketsWebサーバ起動 $ rails server または rails s

⇒ ブラウザで http://localhost:8000/ にアクセス

Page 10: Rails初心者レッスン lesson1 3rd edition

コードの追加 (1)

⇒ 人もツールもアプリケーションの仕組みが理解しやすい

Railsのアプリケーションは…

・同じファイル構造

・厳格な命名規則

Page 11: Rails初心者レッスン lesson1 3rd edition

コードの追加 (2)

アプリケーションの仕組みが理解しやすい

・コーディングを自動化できる

・アプリケーションが規則に従って実行してくれる

⇒ 設定が不要

設定より規約(convention over configuration)

Page 12: Rails初心者レッスン lesson1 3rd edition

コードの追加 (3)

Railsには便利で強力なツール scaffold がある

scaffold は データの登録、読込み、更新、削除 に必要なコードを生成してくれる

scaffold コマンド $ rails generate scaffold   データグループ名 メンバ1:データの型 メンバ2:データ型e.g. rails generate scaffold ticket name:string address:string

単数形 (※)

Railsには便利で強力なツール scaffold がある

Page 13: Rails初心者レッスン lesson1 3rd edition

コードの追加 (4)

ブラウザで http://localhost:3000/tickets にアクセス※ Webサーバの再起動は不要

Page 14: Rails初心者レッスン lesson1 3rd edition

データベースの作成 (1)

エラーになるのはなぜ?

⇒ データベースを作っていないから

データベースに接続して作成?

⇒ migration コマンドで作成

migration コマンド $ rake db:migrate

Page 15: Rails初心者レッスン lesson1 3rd edition

データベースの作成 (2)

テーブルを作成するために必要な情報は、scaffold を実行した時に伝えてある

 rails generate scaffold ticket name:string, …

DRY(Don't repeat yourself)同じことを繰り返さない

Railsには重要な基本原則がある

Page 16: Rails初心者レッスン lesson1 3rd edition

データベースの作成 (3)

DRY の原則に従って、scaffold を実行した時にテーブル作成用の Ruby スクリプトも生成される

このスクリプトを rake というツールを使って実行するとmigration が行われる

ブラウザで http://localhost:3000/tickets にアクセス※ Webサーバの再起動が必要

Page 17: Rails初心者レッスン lesson1 3rd edition

データベースの作成 (4)

rails console rails環境が設定された状態で起動するirb オブジェクトの動作を直接確認するのに使う 終了するときは以下のように入力する  exit --sandbox : DBのデータを変更しない

Page 18: Rails初心者レッスン lesson1 3rd edition

データベースの作成 (5)

rails dbconsole データベースクライアントを起動する SQLを実行することができる SQLite3の場合、以下のコマンドが使用できる  .table : テーブルの一覧を確認  .schema テーブル名 :   指定されたテーブルの構造を確認  .quit : 終了する

Page 19: Rails初心者レッスン lesson1 3rd edition

コマンドのヘルプ

基本的に「-h」をつけて実行する rails -h rails generate -h rails generate scaffold -h rake -T 

Page 20: Rails初心者レッスン lesson1 3rd edition

JavaScript/CoffeeScriptCSS/SCSS など

Railsの役割分担

controllerscontrollers

viewsviews

DBDB

Ruby

modelsmodelsRuby

webwebサーバーサーバー(apache(apacheとかとか))

ブラウザブラウザ

rackrack

sprocketssprockets

HTML.erb

Ruby

Ruby

SQL

Page 21: Rails初心者レッスン lesson1 3rd edition

Railsのディレクトリ構成

prj.prj.

imagesimages

publicpublic

appapp

configconfig

dbdb

liblib

loglog

scriptscript

testtest

tmptmp

vendorvendor

*.gif, *.png*.gif, *.png*.gif, *.png*.gif, *.png

stylesheetsstylesheets

javascriptsjavascripts

application.cssapplication.css

modelsmodels

controllerscontrollers

modelsmodels

viewsviews

assetsassets

appapp

Page 22: Rails初心者レッスン lesson1 3rd edition

Railsのディレクトリ構成

prj.prj.

・・・・・・migratemigratedbdb

appapp

configconfig

liblib

loglog

publicpublic

scriptscript

testtest

tmptmp

vendorvendor

dbdb

Page 23: Rails初心者レッスン lesson1 3rd edition

Railsのディレクトリ構成

prj.prj.

・・・・・・routes.rbroutes.rb

configconfig

appapp

dbdb

liblib

loglog

publicpublic

scriptscript

testtest

tmptmp

vendorvendor

configconfig

Page 24: Rails初心者レッスン lesson1 3rd edition

scaffold(デフォルト)でのURL

URLの基本構成 http://host/resources #action => index http://host/resources/new #action => new http://host/resources #action => create http://host/resources/id #action => show http://host/resources/id/edit #action => edit http://host/resources/id #action => update http://host/resources/id #action => destroy

URLの確認 $ rake routes

Lesson2で設定とかやります

Page 25: Rails初心者レッスン lesson1 3rd edition

Lesson1は、これで終わりです。お疲れさまでした。