Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Learning Rails3 for newbies #1 3rd edition
Search
Goh Matsumoto
May 19, 2012
Technology
1
66
Learning Rails3 for newbies #1 3rd edition
Minami.rbの初心者レッスンで使用した資料です。
Goh Matsumoto
May 19, 2012
Tweet
Share
Other Decks in Technology
See All in Technology
事業継続を支える自動テストの考え方
tsuemura
0
300
バックエンドエンジニアのためのフロントエンド入門 #devsumiC
panda_program
16
6.5k
スタートアップ1人目QAエンジニアが QAチームを立ち上げ、“個”からチーム、 そして“組織”に成長するまで / How to set up QA team at reiwatravel
mii3king
1
1.1k
地方拠点で エンジニアリングマネージャーってできるの? 〜地方という制約を楽しむオーナーシップとコミュニティ作り〜
1coin
1
130
Larkご案内資料
customercloud
PRO
0
600
管理者しか知らないOutlookの裏側のAIを覗く#AzureTravelers
hirotomotaguchi
2
240
ハッキングの世界に迫る~攻撃者の思考で考えるセキュリティ~
nomizone
12
4.5k
Developers Summit 2025 浅野卓也(13-B-7 LegalOn Technologies)
legalontechnologies
PRO
0
150
WAF に頼りすぎない AWS WAF 運用術 meguro sec #1
izzii
0
460
急成長する企業で作った、エンジニアが輝ける制度/ 20250214 Rinto Ikenoue
shift_evolve
2
880
CZII - CryoET Object Identification 参加振り返り・解法共有
tattaka
0
240
『衛星データ利用の方々にとって近いようで触れる機会のなさそうな小話 ~ 衛星搭載ソフトウェアと衛星運用ソフトウェア (実物) を動かしながらわいわいする編 ~』 @日本衛星データコミニティ勉強会
meltingrabbit
0
120
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
27
1.9k
The World Runs on Bad Software
bkeepers
PRO
67
11k
GraphQLとの向き合い方2022年版
quramy
44
13k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.5k
Making Projects Easy
brettharned
116
6k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
20
2.4k
Transcript
Rails3 初心者レッスン by Minami.rb 第 第3 3版 版 Rails3.2 Rails3.2
Lesson 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) 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 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,
… 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/CoffeeScript CSS/SCSS など Railsの役割分担 controllers controllers views views DB DB
Ruby models models Ruby web webサーバー サーバー(apache (apacheとか とか) ) ブラウザ ブラウザ rack rack sprockets sprockets HTML.erb Ruby Ruby SQL
Railsのディレクトリ構成 prj. prj. images images public public app app config
config db db lib lib log log script script test test tmp tmp vendor vendor *.gif, *.png *.gif, *.png *.gif, *.png *.gif, *.png stylesheets stylesheets javascripts javascripts application.css application.css models models controllers controllers models models views views assets assets app app
Railsのディレクトリ構成 prj. prj. ・・・ ・・・ migrate migrate db db app
app config config lib lib log log public public script script test test tmp tmp vendor vendor db db
Railsのディレクトリ構成 prj. prj. ・・・ ・・・ routes.rb routes.rb config config app
app db db lib lib log log public public script script test test tmp tmp vendor vendor config config
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は、これで終わりです。 お疲れさまでした。