SlideShare ist ein Scribd-Unternehmen logo
1 von 51
Downloaden Sie, um offline zu lesen
バカでもわかるRails #02
Model/Controller/Routes/認証 編
石井大輔 - www.jenio.co
Twitter@ishiid, email: dai@jenio.co 1
馬鹿
パパ、
Ruby on Rails教えて!
2
題名はクレージーですが、真面目な教材です
Rubyは英語みたいでとっつきやすいのに、Railsはとても難しい。
これが初心者の僕の悩みでした。もっと簡単な学習方法はないものか。
原因はRails用語が実生活で全く使わない抽象概念だからではないでしょうか。
だったらまず用語の意味を繰り返し覚えるべきでは?
英語の勉強と同じ手法を取れば良いのでは?これが僕の仮説です。
Q&A形式でクイズっぽい単語帳カードを作りましたので、
自習もしくは相方と使ってみて下さい。
コーディングを楽しみましょう! 3
単語帳の様に繰り返し学びましょう!
4
注意
この教材は一通りRailsを勉強したが、
記憶が定着していない人を対象としています。
全くの初心者の方は、
まずRubyとRailsを勉強し、補助教材として使ってください。
説明を意図的にシンプルかつ抽象的にまとめてありますので、
細かい点気になる人はググりましょう。
5
コンセプトについて
勉強しよう!
6
“tweets”という名前のデータベースがあると仮定しましょ
う。エクセルシートに形が似ています。
id tweet user
1 私は元気です。 ヒロシ
2 結婚しました! マリ
3 転職決まりました。 ケンジ
7
*データベース名は常に小文字で始まり複数形です“tweets”.
問: RailsでいうModelって簡単に言うと何?
8
問: RailsでいうModelって簡単に言うと何?
9
答: Railsのアプリがどの様に
データベースと連絡を取るか、と
いう仕組み
問: Modelのファイルの基本には何が書いてある?
10
問: Modelのファイルの基本には何が書いてある?
11
答: app/models/tweet.rbの場合
Class Tweet < ActiveRecord::Base
end
*Tweetはクラスの名前なので大文字
*TweetはActiveRecordを継承
問: ActiveRecordって簡単に言うと何?
12
問: ActiveRecordって簡単に言うと何?
13
答: Modelそのもの。データベースと論理を
コントロールする仕組み。
認証の仕組みを
勉強しよう!
14
問: データの存在を認証するModelのコードを書いて
15
問: データの存在を認証するModelのコードを書いて
16
答: app/models/tweet.rb
Class Tweet < ActiveRecord::Base
validates_presence_of :status
end
問: 前ページのModelに対して空のデータを作って認証
してみて
17
問: 前ページのModelに対して空のデータを作って認証
してみて
18
答: t = Tweet.new
=> #< Tweet id:nil, text:nil, user:nil>
t.save => false
*nil = データなしという意味
*false = 認証が取れず保存できなかった
問: 前ページの空データに対してエラーメッセージを表示
させて
19
問: 前ページの空データに対してエラーメッセージを表示
させて
20
答: t.errors.messages => {status:[“空欄
は不可です”]}
もしくは
t.errors[:status][0] => “空欄は不可です”
問: 数値か小数点のみ有効かどうか認証するModelを
書いてください
21
問: 数値か小数点のみ有効かどうか認証するModelを
書いてください
22
答:class Tweet < ActiveRecord::Base
validates :tweet, numericality: true
end
問: 数値のみ認証するModelを書いてください
23
問: 数値のみ認証するModelを書いてください
24
答:class Tweet < ActiveRecord::Base
validates :tweet, numericality:
{only_integer: true }
end
Controllerを
勉強しよう!
25
問: JSONとは何の事ですか?具体例交え。
26
問: JSONとは何の事ですか?具体例交え。
27
答:JavaScriptの中でデータを表現する為の
文法
{"employees":[{"firstName":"John","lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}]}
問: XMLとは何の事ですか?具体例交え。
28
問: XMLとは何の事ですか?具体例交え。
29
答:タグを使ったデータの表現形式
<employees><employee>
<firstName>John</firstName> <lastName>Doe</lastName>
</employee><employee>
<firstName>Anna</firstName> <lastName>Smith</lastName>
</employee><employee>
<firstName>Peter</firstName> <lastName>Jones</lastName>
</employee></employees>
問: 「travels」コントローラの「show」アクションを呼び出す時にパ
ラメータ名「id=10」の値をリクエストに含める場合のURLは?
30
問: 「travels」コントローラの「show」アクションを呼び出す時にパ
ラメータ名「id=10」の値をリクエストに含める場合のURLは?
31
答:http://localhost:3000/travels/show/10
問: 前ページの場合のルーティングは?
32
問: 前ページの場合のルーティングは?
33
答:match ‘travels/show/:id’ =>
‘travels#show’
問: params[:パラーメータ名]の意味は?
34
問: params[:パラーメータ名]の意味は?
35
答:アクションメソッドの中で、パラメータ名を指
定して値を取得する
問: 今回のセッションのユーザーIDが、そのツイートの
ユーザーIDと一致していない、というコード
36
問: 今回のセッションのユーザーIDが、そのツイートの
ユーザーIDと一致していない、というコード
37
答:session[:user_id] != @tweet.user_id
問: 登録ありがとうございます、とフラッシュメッセージを
出すコード
38
問: 登録ありがとうございます、とフラッシュメッセージを
出すコード
39
答:flash[:notice] = “登録ありがとうございま
す”
問: tweetを取得するget_tweetというメソッドを定義してく
ださい
40
問: tweetを取得するget_tweetというメソッドを定義してく
ださい
41
答: def get_tweet
@tweet = Tweet.find(params[:id])
end
問: get_tweetをedit, update, destroyの時に実行すると
いうコードを書いてください
42
問: get_tweetをedit, update, destroyの時に実行すると
いうコードを書いてください
43
答: app/controller/tweets_controller.rb
before_action :get_tweet, only: [:edit, :
update, :destroy]
Routesを
勉強しよう!
44
問: Twitterというアプリのroutes.rbの骨格を書いてくださ
い
45
問: Twitterというアプリのroutes.rbの骨格を書いてくださ
い
46
答: app/config/routes.rb
Twitter::Application.routes.draw do
end
問: 前ページの回答にresourcesを足してください
47
問: 前ページの回答にresourcesを足してください
48
答: app/config/routes.rb
Twitter::Application.routes.draw do
resources :tweets
end
*resourcesは常に小文字で複数形
問: 前ページの回答にnew actionを足してください
49
問: 前ページの回答にnew actionを足してください
50
答: app/config/routes.rb
Twitter::Application.routes.draw do
resources :tweets
get ‘/new_tweet’ => ‘tweets#new’
end
path controller action
GOAL! よくできました!
良かったら繰り返しチャレンジしてみてください。
51
改善の為の、
ご意見ご感想お待ちしています。
Twitter@ishiid
https://twitter.com/ishiid
Email: dai@jenio.co

Weitere ähnliche Inhalte

Andere mochten auch

Rails初心者レッスン lesson4 2edition
Rails初心者レッスン lesson4 2editionRails初心者レッスン lesson4 2edition
Rails初心者レッスン lesson4 2editionSatomi Tsujita
 
Roombaを鉄騎コントローラーで操縦してみた
Roombaを鉄騎コントローラーで操縦してみたRoombaを鉄騎コントローラーで操縦してみた
Roombaを鉄騎コントローラーで操縦してみたDaisuke Nikura
 
こんにちは、白い粉エバンジェリストの山口です
こんにちは、白い粉エバンジェリストの山口ですこんにちは、白い粉エバンジェリストの山口です
こんにちは、白い粉エバンジェリストの山口です亮介 山口
 
アジャイル勉強会
アジャイル勉強会アジャイル勉強会
アジャイル勉強会moai kids
 
作業中の気付きからhouren.soが開発されるまで
作業中の気付きからhouren.soが開発されるまで作業中の気付きからhouren.soが開発されるまで
作業中の気付きからhouren.soが開発されるまでTsuyoshi Saito
 
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京hecomi
 
[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)
[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)
[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)codeal
 
超初心者向け 無料ホームページ作成ツール Wixを学ぼう
超初心者向け 無料ホームページ作成ツール Wixを学ぼう超初心者向け 無料ホームページ作成ツール Wixを学ぼう
超初心者向け 無料ホームページ作成ツール Wixを学ぼうDaisuke Ishii
 
【セプテーニHD】2016年9月期 第1四半期決算説明会資料
【セプテーニHD】2016年9月期 第1四半期決算説明会資料【セプテーニHD】2016年9月期 第1四半期決算説明会資料
【セプテーニHD】2016年9月期 第1四半期決算説明会資料SEPTENI HOLDINGS CO.,LTD.
 
自己変革とゲーミング 慶應義塾大学大学院システムマネジメントデザイン研究科Kids20121203keiogdw
自己変革とゲーミング 慶應義塾大学大学院システムマネジメントデザイン研究科Kids20121203keiogdw自己変革とゲーミング 慶應義塾大学大学院システムマネジメントデザイン研究科Kids20121203keiogdw
自己変革とゲーミング 慶應義塾大学大学院システムマネジメントデザイン研究科Kids20121203keiogdwkojitakahashi
 
イマドキC++erのモテカワリソース管理術
イマドキC++erのモテカワリソース管理術イマドキC++erのモテカワリソース管理術
イマドキC++erのモテカワリソース管理術Kohsuke Yuasa
 
Duolingo.pptx
Duolingo.pptxDuolingo.pptx
Duolingo.pptxsyou6162
 
「コトナス」:出会わなくても良いアプリ『Match★Contact』
「コトナス」:出会わなくても良いアプリ『Match★Contact』「コトナス」:出会わなくても良いアプリ『Match★Contact』
「コトナス」:出会わなくても良いアプリ『Match★Contact』cotonas_en
 
20120720自動車技術会
20120720自動車技術会20120720自動車技術会
20120720自動車技術会Fusaji Hayasaka
 
Unity ネイティブプラグインの作成について
Unity ネイティブプラグインの作成についてUnity ネイティブプラグインの作成について
Unity ネイティブプラグインの作成についてTatsuhiko Yamamura
 
WordPressでサイト作成するときに知っておくといいことあれこれ
WordPressでサイト作成するときに知っておくといいことあれこれWordPressでサイト作成するときに知っておくといいことあれこれ
WordPressでサイト作成するときに知っておくといいことあれこれYUKI YAMAGUCHI
 

Andere mochten auch (19)

Rails初心者レッスン lesson4 2edition
Rails初心者レッスン lesson4 2editionRails初心者レッスン lesson4 2edition
Rails初心者レッスン lesson4 2edition
 
Roombaを鉄騎コントローラーで操縦してみた
Roombaを鉄騎コントローラーで操縦してみたRoombaを鉄騎コントローラーで操縦してみた
Roombaを鉄騎コントローラーで操縦してみた
 
こんにちは、白い粉エバンジェリストの山口です
こんにちは、白い粉エバンジェリストの山口ですこんにちは、白い粉エバンジェリストの山口です
こんにちは、白い粉エバンジェリストの山口です
 
アジャイル勉強会
アジャイル勉強会アジャイル勉強会
アジャイル勉強会
 
作業中の気付きからhouren.soが開発されるまで
作業中の気付きからhouren.soが開発されるまで作業中の気付きからhouren.soが開発されるまで
作業中の気付きからhouren.soが開発されるまで
 
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
 
[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)
[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)
[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)
 
超初心者向け 無料ホームページ作成ツール Wixを学ぼう
超初心者向け 無料ホームページ作成ツール Wixを学ぼう超初心者向け 無料ホームページ作成ツール Wixを学ぼう
超初心者向け 無料ホームページ作成ツール Wixを学ぼう
 
gem の探し方
gem の探し方gem の探し方
gem の探し方
 
Rails あるある
Rails あるあるRails あるある
Rails あるある
 
【セプテーニHD】2016年9月期 第1四半期決算説明会資料
【セプテーニHD】2016年9月期 第1四半期決算説明会資料【セプテーニHD】2016年9月期 第1四半期決算説明会資料
【セプテーニHD】2016年9月期 第1四半期決算説明会資料
 
自己変革とゲーミング 慶應義塾大学大学院システムマネジメントデザイン研究科Kids20121203keiogdw
自己変革とゲーミング 慶應義塾大学大学院システムマネジメントデザイン研究科Kids20121203keiogdw自己変革とゲーミング 慶應義塾大学大学院システムマネジメントデザイン研究科Kids20121203keiogdw
自己変革とゲーミング 慶應義塾大学大学院システムマネジメントデザイン研究科Kids20121203keiogdw
 
イマドキC++erのモテカワリソース管理術
イマドキC++erのモテカワリソース管理術イマドキC++erのモテカワリソース管理術
イマドキC++erのモテカワリソース管理術
 
docxをmdで書こう
docxをmdで書こうdocxをmdで書こう
docxをmdで書こう
 
Duolingo.pptx
Duolingo.pptxDuolingo.pptx
Duolingo.pptx
 
「コトナス」:出会わなくても良いアプリ『Match★Contact』
「コトナス」:出会わなくても良いアプリ『Match★Contact』「コトナス」:出会わなくても良いアプリ『Match★Contact』
「コトナス」:出会わなくても良いアプリ『Match★Contact』
 
20120720自動車技術会
20120720自動車技術会20120720自動車技術会
20120720自動車技術会
 
Unity ネイティブプラグインの作成について
Unity ネイティブプラグインの作成についてUnity ネイティブプラグインの作成について
Unity ネイティブプラグインの作成について
 
WordPressでサイト作成するときに知っておくといいことあれこれ
WordPressでサイト作成するときに知っておくといいことあれこれWordPressでサイト作成するときに知っておくといいことあれこれ
WordPressでサイト作成するときに知っておくといいことあれこれ
 

Kürzlich hochgeladen

[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 

Kürzlich hochgeladen (9)

[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 

バカでもわかるRails #02