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
0
1.9k
DVD of Rails
Detonation Velocity Development
ogom
August 12, 2014
Tweet
Share
More Decks by ogom
See All by ogom
PicoRuby から始めるたのしい電子工作
ogom
0
2k
GraphQL Better Errors
ogom
0
380
Osaka RubyKaigi 02
ogom
0
350
Osaka RubyKaigi 01
ogom
0
240
Contributing to GitLab with OSS Gate
ogom
0
610
DojoCon Japan 2017
ogom
0
160
GDStudy Engage
ogom
1
800
Using Immutable.js with React Redux
ogom
0
170
CoderDojo と オープンソース
ogom
2
520
Other Decks in Programming
See All in Programming
そのAIレビュー、レビューしてますか? / Are you reviewing those AI reviews?
rkaga
6
4.6k
Best-Practices-for-Cortex-Analyst-and-AI-Agent
ryotaroikeda
1
110
CSC307 Lecture 10
javiergs
PRO
1
660
dchart: charts from deck markup
ajstarks
3
1k
Package Management Learnings from Homebrew
mikemcquaid
0
230
ノイジーネイバー問題を解決する 公平なキューイング
occhi
0
110
今から始めるClaude Code超入門
448jp
8
9k
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
5
480
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
180
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
210
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
1
2.6k
Raku Raku Notion 20260128
hareyakayuruyaka
0
340
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Technical Leadership for Architectural Decision Making
baasie
2
250
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
250
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
330
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
310
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
67
Color Theory Basics | Prateek | Gurzu
gurzu
0
200
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
940
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
66
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