Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
TRUNK 0125 トレーニング
Search
oyaoyaoya
January 25, 2017
Technology
46
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
TRUNK 0125 トレーニング
Ruby on Rails | 2時間でTwitterを作ろう
oyaoyaoya
January 25, 2017
Other Decks in Technology
See All in Technology
大型犬好きによるPugの紹介
yamanoku
1
160
Webの常識が通じないHTMLメールのダークモード
teamlab
PRO
0
120
スプシの手作業からの解脱 ~更新はClaude Codeに、見せ方と使い方はGASアプリに任せる~
kentarofujii
0
150
Temporal 最高!でも改めて「日付」について調べたら人類の負債すぎる件
riyaamemiya
0
150
Code for Security プロジェクト紹介 2026年10月
yu23ki14
0
110
事業成長とデータ活用を止めないためのマネジメントへ挑戦
hiracky16
0
390
Running Kotlin + Quarkus with Lambda
nealle
1
3.7k
Conditional PED-ANOVA: Hyperparameter Importance in Hierarchical & Dynamic Search Spaces
pfn
PRO
0
130
CTO Night|NotionのAIエージェントとFDE
kzkhykw1991
0
110
自作バイナリを動かす「入口」8選
puhitaku
2
1.3k
Refining Active Record
shugo
0
160
宣言型部分更新は何を解決しどこへ向かうのか
shuta13
1
460
Featured
See All Featured
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
630
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
850
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
400
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.2k
Paper Plane (Part 1)
katiecoart
PRO
2
12k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
730
Everyday Curiosity
cassininazir
0
350
WCS-LA-2024
lcolladotor
0
890
Building AI with AI
inesmontani
PRO
1
1.3k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
330
Transcript
None
ΞδΣϯμ ࣗݾհͷϑΣʔζ Ruby ʹ͍ͭͯ Ruby on Rails ͱ ࣮ࡍʹͬͯΈΑ͏ʂ
ࠓͷΰʔϧ RoRΛ͔ͬͨؾʹͳΔ
ࣗݾհ • ཱڭେֶ̏ੜ • TECH::CAMPͰϝϯλʔͯ͠·͢ɻ • ΏΔεϙΛ࡞͍ͬͯΔɻ • མޠͱ͔ɺөը͕͖
Ruby ͱ • ຊਓ͕࡞ͬͨϓϩάϥϛϯάݴޠ • WebΞϓϦ։ൃ͖
Ruby ͱ • ຊਓ͕࡞ͬͨϓϩάϥϛϯάݴޠ • WebΞϓϦ։ൃ͚ ͦͷલʹ
ϓϩάϥϛϯάݴޠʁʁ
ϓϩάϥϛϯάݴޠʁʁ C, C++, Java, Go, python, HTML, CSS, JavaScript Ruby,
PHP,
ϓϩάϥϛϯάݴޠͱ • ίϯϐϡʔλʹ໋ྩΛग़ͨ͢Ίͷݴޠ • ग़དྷΔ͜ͱେମಉ͡ • త࣍ୈͰɺ͖ෆ͖͕͋Δ
Ruby ͱ • ຊਓ͕࡞ͬͨϓϩάϥϛϯάݴޠ • WebΞϓϦ։ൃ͖
ϚʔΫΞοϓݴޠͷҧ͍ͱ ϓϩάϥϛϯάݴޠͷҧ͍
ϚʔΫΞοϓݴޠͷҧ͍ͱ ϓϩάϥϛϯάݴޠͷҧ͍ ϚʔΫΞοϓݴޠ ˠจॻߏɺදݱ ϓϩάϥϛϯάݴޠ ˠσʔλͷΓऔΓ
Ruby on Rails ͱ v RubyͷwebΞϓϦ༻ϑϨʔϜϫʔΫ => webΞϓϦͷ࡞͕ൺֱతΧϯλϯ v Ҏલ1000ߦॻ͍͍ͯͨίʔυ͕ ɹɹɹɹ 100ߦͰՄೳʹͳΔɻ
https://blog.codecamp.jp/what_is_rails
None
ᶃ ߘ ᶄ දࣔ ᶅ ฤू ᶆ আ ɹɹɹɹΛͬͨWebΞϓϦͷ࡞ʂ Ruby on Rails Ͱग़དྷΔࣄ OOΛߘɺදࣔɺฤूɺআɻ
ɹɹɹɹɹɹɹͱ͍͏͜ͱͳΒେମͰ͖Δɻ ߟ͑ͯΈΑ͏ʂ
Ruby on Rails ઃܭཧ೦ • CoC (convention over configuration) ɹ໋໊نଇΛकΒͶͳΒͳ͍ɻ
• DRY ʢDon’t Repeat Yourselfʣ ಉ͡هड़Λ܁Γฦ͞ͳ͍ɺলΤωɻमਖ਼ָ͕ɻ • RESTʢRepresentational State Transferʣ URLͱHTTPϝιουͷֻ͚ࢉɺRESTfulͰ͢ɻ
ࠓ͍͡Δॴ ᶃconfig/routes.rb :ΞΫηεͱॲཧ ᶄapp/controllers :viewͱσʔλΛ࿈݁ ᶅapp/views :ݟͨ ᶆdb/migrate :σʔλϕʔεߏங ᶇapp/models
:σʔλؔ࿈
• ड͚औͬͨURL(ϦΫΤετ)ͱͦͷޙͷΞΫγϣϯΛܾఆ͢Δɻ Rails.application.routes.draw do get '/tweets’ => 'tweets#index’ end ˞ҙຯ
/tweetsʹϦΫΤετΛड͚औͬͨΒɺ tweetsίϯτϩʔϥʔͷindexΞΫγϣϯʹड͚͢ɻ cofig/routes.rb ϧʔςΟϯά
• ΞΫγϣϯͷఆٛ • Viewͷσʔλఆٛ App/conterollers/tweets_controller.rb class TweetsController < ApplicationController def
index @tweets = Tweet.all end end ˞ҙຯ ɹ@tweetsviewʹ͢σʔλͷശɺதʹ = ͷӈଆ͕ೖ͍ͬͯΔɻ ɹTweet.allͰɺTweetςʔϒϧͷશͯͷσʔλΛॴಘ͍ͯ͠Δɻ Controller
• ݟͨ୲ • ίϯτϩʔϥʔ͔Βड͚औͬͨσʔλͷॲཧΛ͢Δ <% @tweets.each do |tweet| %> <%=
tweet.text %> <% end %> ˞ҙຯ <%%>Ͱғ·ΕͨͷRubyͷίʔυɻ @tweetsͰड͚औͬͨσʔλΛeachจͰల։ͯ͠ද͍ࣔͯ͠Δɻ app/views/index.html.erb View
• σʔλϕʔεͷઃܭ ɹɹσʔλͷ໊લɺܗࣜɺΈ߹ΘͤΛهड़͢Δॴ class CreateTweets < ActiveRecord::Migration[5.0] def change create_table
:tweets do |t| t.string :text t.integer :user_id ɹend end end ˞ҙຯ ɹtweetςʔϒϧstringܕtextΧϥϜͱ ɹɹɹɹɹɹɹɹ integerܕuser_idΧϥϜͰߏ͢Δɻ migration db/migrate/20170125110916_create_tweets.rb
σʔλͷߏ ໊લɹจࣈ(λϩ) (cm) ମॏ(kg) ͭͿ͖ จࣈ(τϨʔχϯάͳ͏) ɹɹɹɹɹstring
• σʔλϕʔεͱͷௐ(ςʔϒϧΛ͑ΔΑ͏ʹ͢Δ) • ςʔϒϧಉ࢜ͷؔੑΛఆٛ(reration) • σʔλͷ੍ݶ(validation) ˞ҙຯ tweetϞσϧuserϞσϧʹैଐ͍ͯ͠Δ text140จࣈҎ্ෆՄ class
Tweet < ApplicationRecord belongs_to :user validates :text, length: { maximum: 140 } end app/models/tweet.rb Model
σʔλͷؔੑ ෳ ̍ has_many :tweets belongs_to :user
σʔλͷ੍ݶ ໊લɹଟͯ͘10จࣈ 150 ~ 180cm·Ͱ ମॏ 35 ~ 90
kg·Ͱ ͭͿ͖ 140จࣈҎ
࣮ࡍʹͬͯΈΑ͏ʂ
ᶃ ߘ ᶄ දࣔ ᶅ ฤू ᶆ আ ɹɹɹɹΛͬͨWebΞϓϦͷ࡞ʂ Ruby on Rails Ͱग़དྷΔࣄ OOΛߘɺදࣔɺฤूɺআɻ
ɹɹɹɹɹɹɹͱ͍͏͜ͱͳΒେମͰ͖Δɻ ࠶ͼ
Ruby on Rails ઃܭཧ೦ • CoC (convention over configuration) ɹ໋໊نଇΛकΒͶͳΒͳ͍ɻ
• DRY ʢDon’t Repeat Yourselfʣ ಉ͡هड़Λ܁Γฦ͞ͳ͍ɺলΤωɻमਖ਼ָ͕ɻ • RESTʢRepresentational State Transferʣ URLͱHTTPϝιουͷֻ͚ࢉɺRESTfulͰ͢ɻ ࠶ͼ
͍͍ײ͡ͷࢿྉ • http://blog.sumyapp.com/2013/07/no- recommend-rails/ • http://www.rubylife.jp/rails/ini/ index7.html
Φεεϝͷษڧํ๏ • Progate • TECH::CAMP