SlideShare a Scribd company logo
第3版
Rails3.2

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


                          Le ss on 1
このレッスンでやること一覧

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


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

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

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

↑が正しいかは皆さんの判断に任せます
Rails とは? (1)


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

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

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

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

・画面を切り替える処理

・画面
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 tickets

Webサーバ起動
 $ 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, …

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


  DRY(Don't repeat yourself)
  同じことを繰り返さない
データベースの作成 (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 
Railsの役割分担
                   ブラウザ


         webサーバー(apacheとか)

Ruby                       rack


Ruby              controllers           sprockets   Ruby
Ruby     models                 views   JavaScript/CoffeeScript
                                           CSS/SCSS など
       SQL                 HTML.erb

             DB
Railsのディレクトリ構成

prj.    app     controllers
       config    models
        db        views
        lib       assets        images      *.gif, *.png
                                            *.gif, *.png
        log                   stylesheets   application.css
       public                 javascripts
       script
        test
        tmp
       vendor
Railsのディレクトリ構成

prj.    app
       config
        db      migrate
        lib     ・・・
        log
       public
       script
        test
        tmp
       vendor
Railsのディレクトリ構成

prj.    app
       config    ・・・
        db      routes.rb
        lib
        log
       public
       script
        test
        tmp
       vendor
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は、これで終わりです。
   お疲れさまでした。

More Related Content

PDF
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
emasaka
 
PDF
RESTful APIとしてのRailsとクライアントとしてのJavaScript
Naoto Koshikawa
 
PDF
#7 Controller
T0M0Macii
 
PDF
3分でわかる(気になれる) AWS OpsWorks
Yuuki Namikawa
 
PDF
Gulp入門 - コーディングを10倍速くする
Hayashi Yuichi
 
PDF
Capistrano in practice - WebCareer
Kyosuke MOROHASHI
 
PDF
第2回 松本勉強会 2012 05 25 - apache2.4とmod_lua
Ryosuke MATSUMOTO
 
PDF
Asset Pipeline for Perl
Yoshihiro Sasaki
 
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
emasaka
 
RESTful APIとしてのRailsとクライアントとしてのJavaScript
Naoto Koshikawa
 
#7 Controller
T0M0Macii
 
3分でわかる(気になれる) AWS OpsWorks
Yuuki Namikawa
 
Gulp入門 - コーディングを10倍速くする
Hayashi Yuichi
 
Capistrano in practice - WebCareer
Kyosuke MOROHASHI
 
第2回 松本勉強会 2012 05 25 - apache2.4とmod_lua
Ryosuke MATSUMOTO
 
Asset Pipeline for Perl
Yoshihiro Sasaki
 

What's hot (19)

PDF
PHPコードではなく PHPコードの「書き方」を知る
Masashi Shinbara
 
PDF
ECMAScript6による関数型プログラミング
TanUkkii
 
PDF
Chefを利用した運用省力化とDevOpsの取り組みについて
Yuuki Namikawa
 
PPT
20090606
小野 修司
 
KEY
おすすめ gem
chocoby
 
PPT
Apache Module
Tomohiro Ikebe
 
PPT
Using Windows Azure
Shinji Tanaka
 
PPTX
gulp勉強会@IVP
Daisuke Onoe
 
PDF
成長を加速する minne の技術基盤戦略
Hiroshi SHIBATA
 
PDF
Scotty を利用した "ゆるふわ" Web サービス作成
krdlab
 
PDF
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)
nabe-abk
 
PDF
densan2014-late01
Takenori Nakagawa
 
PDF
Lightweight C#
将 高野
 
PDF
chat bot framework for Java8
masahitojp
 
PPTX
Yesod勉強会
Hideyuki Tanaka
 
PDF
Ruby風Swift NSOperation編
Hisakuni Fujimoto
 
PDF
イマドキのコーダー環境構築2016
Sou Lab
 
PDF
20140930 anything as_code
Sugawara Genki
 
PDF
Webサーバ勉強会03
oranie Narut
 
PHPコードではなく PHPコードの「書き方」を知る
Masashi Shinbara
 
ECMAScript6による関数型プログラミング
TanUkkii
 
Chefを利用した運用省力化とDevOpsの取り組みについて
Yuuki Namikawa
 
20090606
小野 修司
 
おすすめ gem
chocoby
 
Apache Module
Tomohiro Ikebe
 
Using Windows Azure
Shinji Tanaka
 
gulp勉強会@IVP
Daisuke Onoe
 
成長を加速する minne の技術基盤戦略
Hiroshi SHIBATA
 
Scotty を利用した "ゆるふわ" Web サービス作成
krdlab
 
毎秒2000Requestを捌くPerl製CMSの内部構造(Debianサーバ1台にて)
nabe-abk
 
densan2014-late01
Takenori Nakagawa
 
Lightweight C#
将 高野
 
chat bot framework for Java8
masahitojp
 
Yesod勉強会
Hideyuki Tanaka
 
Ruby風Swift NSOperation編
Hisakuni Fujimoto
 
イマドキのコーダー環境構築2016
Sou Lab
 
20140930 anything as_code
Sugawara Genki
 
Webサーバ勉強会03
oranie Narut
 
Ad

Viewers also liked (7)

PDF
Getting Started with Rails
Goh Matsumoto
 
PDF
KPT - taking part in Minami.rb -
Goh Matsumoto
 
PDF
Whats newrails4 20130406
Goh Matsumoto
 
PDF
Minamirb rails hackathon_3rd_ideathon
Goh Matsumoto
 
PDF
What's Next in Growth? 2016
Andrew Chen
 
PDF
The Outcome Economy
Helge Tennø
 
PDF
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
Barry Feldman
 
Getting Started with Rails
Goh Matsumoto
 
KPT - taking part in Minami.rb -
Goh Matsumoto
 
Whats newrails4 20130406
Goh Matsumoto
 
Minamirb rails hackathon_3rd_ideathon
Goh Matsumoto
 
What's Next in Growth? 2016
Andrew Chen
 
The Outcome Economy
Helge Tennø
 
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
Barry Feldman
 
Ad

Similar to Rails初心者レッスン lesson1 3rd edition (20)

PDF
Ruby で扱う LDAP のススメ
Kazuaki Takase
 
PDF
Web技術勉強会23回目
龍一 田中
 
PDF
Isomorphic web development with scala and scala.js
TanUkkii
 
PDF
G * magazine 0
Tsuyoshi Yamamoto
 
PDF
Rails3.1rc4を試してみた
Takahiro Hidaka
 
KEY
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
linzhixing
 
PPTX
Couch Db勉強会0623 by yssk22
Yohei Sasaki
 
PPTX
UnicastWS vol.2
Unicast Inc.
 
PDF
クラウドカンファレンスIn静岡 r cloud
Kazuki Aranami
 
PDF
serverless
Akira Otsuka
 
PDF
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Akihiro Kuwano
 
PDF
Rails初心者レッスン lesson4 2edition
Satomi Tsujita
 
PPTX
シラサギハンズオン 1015 1016
Yu Ito
 
PDF
Rails Controller Fundamentals
Takashi SAKAGUCHI
 
PPTX
シラサギハンズオン 東京
Yu Ito
 
PDF
Jjug springセッション
Yuichi Hasegawa
 
PPTX
勉強会資料①
真亮 坂口
 
KEY
Web Operations and Perl kansai.pm#14
Masahiro Nagano
 
PDF
IBM Cloudant の細かすぎて伝わりにくい機能(その2) データの変更履歴が自動管理できるらしい
K Kimura
 
PDF
HTML5でオフラインWebアプリケーションを作ろう
yoshikawa_t
 
Ruby で扱う LDAP のススメ
Kazuaki Takase
 
Web技術勉強会23回目
龍一 田中
 
Isomorphic web development with scala and scala.js
TanUkkii
 
G * magazine 0
Tsuyoshi Yamamoto
 
Rails3.1rc4を試してみた
Takahiro Hidaka
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
linzhixing
 
Couch Db勉強会0623 by yssk22
Yohei Sasaki
 
UnicastWS vol.2
Unicast Inc.
 
クラウドカンファレンスIn静岡 r cloud
Kazuki Aranami
 
serverless
Akira Otsuka
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Akihiro Kuwano
 
Rails初心者レッスン lesson4 2edition
Satomi Tsujita
 
シラサギハンズオン 1015 1016
Yu Ito
 
Rails Controller Fundamentals
Takashi SAKAGUCHI
 
シラサギハンズオン 東京
Yu Ito
 
Jjug springセッション
Yuichi Hasegawa
 
勉強会資料①
真亮 坂口
 
Web Operations and Perl kansai.pm#14
Masahiro Nagano
 
IBM Cloudant の細かすぎて伝わりにくい機能(その2) データの変更履歴が自動管理できるらしい
K Kimura
 
HTML5でオフラインWebアプリケーションを作ろう
yoshikawa_t
 

Recently uploaded (11)

PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
PDF
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
PDF
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
 
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
PDF
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
PDF
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
 
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 

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