Rails3 初心者レッスン by Minami.rb 第 第 3 3 版 版 Rails3.2 Rails3.2 Lesson 1
Rails3 初心者レッスンby Minami.rb
第第33版版Rails3.2Rails3.2
Lesson 1
このレッスンでやること一覧
1. Railsで何をする?どうしてRails?2. 作ってみよう事始め3. プロジェクトとテーブル4. Railsの役割分担5. Railsのディレクトリ構成6. scaffold(デフォルト)でのURL7. リレーションを考える8. 日本語対応9. 見た目をキレイに10.プラグインを使う11.ちょっとRubyに働いてもらう12.herokuに公開しよう
この初心者レッスンを全部聞くと…
簡単なものなら、自分で作れるようになるでしょう
Railsがわかった気になるでしょう
Minami.rb初心者レッスンの講師になれます
↑が正しいかは皆さんの判断に任せます
Rails とは? (1)
e.g. 以下のような処理を簡単に作れるようにしてくれる
・データにアクセスする処理
・画面を切り替える処理
・画面
Webアプリケーション作りを支援してくれる枠組み
⇒ Webアプリケーションフレームワーク
Rails とは? (2)
有名なRails製サイトtwitter(※) http://twitter.com/クックパッド http://cookpad.com/食べログ http://tabelog.com/
※ 最近はScalaかも
どうして Rails? (1)
・Webアプリケーションに必要なものがそろっている
・フレームワーク
・DB
・Webサーバ
・アプリケーションとDBを簡単に連携する機能
どうして Rails? (2)
・便利なコマンド
コマンドを実行するだけでいろいろな機能を作ってくれる
・データにアクセスする処理
・画面
・etc
作ってみよう事始め
・何を作る?
・どんなデータ?
・どんな画面?
アプリケーションの新規作成
アプリケーション作成 $ rails new アプリケーション名 e.g. rails new ticketsWebサーバ起動 $ rails server または rails s
⇒ ブラウザで http://localhost:8000/ にアクセス
コードの追加 (1)
⇒ 人もツールもアプリケーションの仕組みが理解しやすい
Railsのアプリケーションは…
・同じファイル構造
・厳格な命名規則
コードの追加 (2)
アプリケーションの仕組みが理解しやすい
・コーディングを自動化できる
・アプリケーションが規則に従って実行してくれる
⇒ 設定が不要
設定より規約(convention over configuration)
コードの追加 (3)
Railsには便利で強力なツール scaffold がある
scaffold は データの登録、読込み、更新、削除 に必要なコードを生成してくれる
scaffold コマンド $ rails generate scaffold データグループ名 メンバ1:データの型 メンバ2:データ型e.g. rails generate scaffold ticket name:string address:string
単数形 (※)
Railsには便利で強力なツール scaffold がある
コードの追加 (4)
ブラウザで http://localhost:3000/tickets にアクセス※ Webサーバの再起動は不要
データベースの作成 (1)
エラーになるのはなぜ?
⇒ データベースを作っていないから
データベースに接続して作成?
⇒ migration コマンドで作成
migration コマンド $ rake db:migrate
データベースの作成 (2)
テーブルを作成するために必要な情報は、scaffold を実行した時に伝えてある
rails generate scaffold ticket name:string, …
DRY(Don't repeat yourself)同じことを繰り返さない
Railsには重要な基本原則がある
データベースの作成 (3)
DRY の原則に従って、scaffold を実行した時にテーブル作成用の Ruby スクリプトも生成される
このスクリプトを rake というツールを使って実行するとmigration が行われる
ブラウザで http://localhost:3000/tickets にアクセス※ Webサーバの再起動が必要
データベースの作成 (4)
rails console rails環境が設定された状態で起動するirb オブジェクトの動作を直接確認するのに使う 終了するときは以下のように入力する exit --sandbox : DBのデータを変更しない
データベースの作成 (5)
rails dbconsole データベースクライアントを起動する SQLを実行することができる SQLite3の場合、以下のコマンドが使用できる .table : テーブルの一覧を確認 .schema テーブル名 : 指定されたテーブルの構造を確認 .quit : 終了する
コマンドのヘルプ
基本的に「-h」をつけて実行する rails -h rails generate -h rails generate scaffold -h rake -T
JavaScript/CoffeeScriptCSS/SCSS など
Railsの役割分担
controllerscontrollers
viewsviews
DBDB
Ruby
modelsmodelsRuby
webwebサーバーサーバー(apache(apacheとかとか))
ブラウザブラウザ
rackrack
sprocketssprockets
HTML.erb
Ruby
Ruby
SQL
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
Railsのディレクトリ構成
prj.prj.
・・・・・・migratemigratedbdb
appapp
configconfig
liblib
loglog
publicpublic
scriptscript
testtest
tmptmp
vendorvendor
dbdb
Railsのディレクトリ構成
prj.prj.
・・・・・・routes.rbroutes.rb
configconfig
appapp
dbdb
liblib
loglog
publicpublic
scriptscript
testtest
tmptmp
vendorvendor
configconfig
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で設定とかやります
Lesson1は、これで終わりです。お疲れさまでした。