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
DVD of Rails
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
ogom
August 12, 2014
Programming
2k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
DVD of Rails
Detonation Velocity Development
ogom
August 12, 2014
More Decks by ogom
See All by ogom
PicoRuby から始めるたのしい電子工作
ogom
0
2.1k
GraphQL Better Errors
ogom
0
400
Osaka RubyKaigi 02
ogom
0
380
Osaka RubyKaigi 01
ogom
0
250
Contributing to GitLab with OSS Gate
ogom
0
640
DojoCon Japan 2017
ogom
0
170
GDStudy Engage
ogom
1
820
Using Immutable.js with React Redux
ogom
0
180
CoderDojo と オープンソース
ogom
2
530
Other Decks in Programming
See All in Programming
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
4
1.6k
フィードバックで育てるAI開発
kotaminato
1
100
AI 輔助遺留系統現代化的經驗分享
jame2408
1
1.2k
AIエージェントで 変わるAndroid開発環境
takahirom
1
440
どこまでゆるくて許されるのか
tk3fftk
0
400
TAKTでAI駆動開発の品質を設計する
j5ik2o
7
1.7k
Vite+ Unified Toolchain for the Web
naokihaba
0
680
「正の参照」と 「負の導出」で組む ハーネスエンジニアリング
cottpan
1
120
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
360
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
450
The Bowling Game- From Imperative to Functional Programming - Part 1
philipschwarz
PRO
0
280
SLOをサービス品質の共通言語にするために 取り組んできたこと
wakana0222
0
370
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
440
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
380
Ruling the World: When Life Gets Gamed
codingconduct
0
270
Thoughts on Productivity
jonyablonski
76
5.2k
How to make the Groovebox
asonas
2
2.3k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.5k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Ethics towards AI in product and experience design
skipperchong
2
320
YesSQL, Process and Tooling at Scale
rocio
174
15k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
500
Transcript
DVD of Rails 63rd RubyKansai Takashi Ogomori
Detonation Velocity Development Ruby on Rails Demonstration of Live Coding.
Let's Make the Doorkeeper with Rails. 2/18
Rails New Rails Server rails new doorswatch cd doorswatch/ rails
server 3/18
Welcome Welcome Controller Root Route rails generate controller welcome index
cat << __EOS__ > ./config/routes.rb Rails.application.routes.draw do root 'welcome#index' end __EOS__ 4/18
Bootstrap Gemfile Bundler gem 'therubyracer', platforms: :ruby echo "gem 'twitter-bootswatch-rails'"
>> Gemfile echo "gem 'twitter-bootswatch-rails-helpers'" >> Gemfile bundle 5/18
Bootswatch Theme Layout rails generate bootswatch:install yeti rails generate bootswatch:import
yeti --force rails generate bootswatch:layout yeti cat << __EOS__ > ./app/controllers/welcome_controller.rb class WelcomeController < ApplicationController layout 'yeti' def index end end __EOS__ 6/18
Hello, world! Container cat << __EOS__ > ./app/views/welcome/index.html.erb <div class="container">
<div class="page-header" id="banner"> <div class="row"> <div class="col-lg-8 col-md-7 col-sm-6"> <h1>Welcome</h1> </div> </div> </div> </div> __EOS__ 7/18
Domain Model 8/18
Resources Group User rails generate scaffold group name:string rake db:migrate
rails generate bootswatch:themed Groups --force rails generate scaffold user name:string email:string rake db:migrate rails generate bootswatch:themed Users --force 9/18
Navbar Partial cat << __EOS__ > ./app/views/layouts/_navbar.html.erb <ul class="nav navbar-nav">
<%= content_tag(:li, class: controller_name == 'groups' ? :active : nil) do %> <% link_to :Groups, groups_path %> <% end %> <%= content_tag(:li, class: controller_name == 'users' ? :active : nil) do %> <% link_to :Users, users_path %> <% end %> </ul> __EOS__ 10/18
References Member Groups Route rails generate scaffold member group:references user:references
rake db:migrate rails generate bootswatch:themed Members --force resources :groups do resources :members end 11/18
Link Groups Show Members Index <%= link_to t('.members', :default =>
t("helpers.links.members")), group_members_path(@group), :class => 'btn' %> <%= link_to t('.new', :default => t("helpers.links.new")), new_group_member_path, :class => 'btn btn-primary' %> 12/18
Model Group User class Group < ActiveRecord::Base has_many :members has_many
:users, through: :members end class User < ActiveRecord::Base has_many :members has_many :groups, through: :members end 13/18
Controller Before Action Create Private before_action :set_group, only: [:new, :create]
@member = @group.members.new(member_params) def set_group @group = Group.find(params[:group_id]) end 14/18
View Form Show <%= form_for [@group, @member], :html => {
:class => 'form-horizontal' } do |f| %> <div class="form-group"> <%= f.label :user_id, :class => 'control-label' %> <%= f.collection_select :user_id, User.all, :id, :name, {prompt: "Select for a user"}, :class => 'form-control' %> </div> <dl class="dl-horizontal"> <dt><strong><%= model_class.human_attribute_name(:group_id) %>:</strong></dt> <dd><%= @member.group.name %></dd> <dt><strong><%= model_class.human_attribute_name(:user_id) %>:</strong></dt> <dd><%= @member.user.name %></dd> </dl> 15/18
Octicons Bundler Plus echo "gem 'octicons-rails'" >> Gemfile bundle <%=
link_to new_group_member_path, :class => 'btn btn-primary' do %> <span class="octicon octicon-plus"></span> <span><%= t('.new', :default => t("helpers.links.new")) %></span> <% end %> 16/18
Gravatar Bundler Image Tag echo "gem 'gravatar_image_tag'" >> Gemfile bundle
<td> <%= gravatar_image_tag(member.user.email, alt: member.user.name, gravatar: { size: 28 }) %> <%= member.user.name %> </td> 17/18
Thank You! ♥ ɿ? 18/18