SlideShare a Scribd company logo
第2版
Rails3.1

    Rails3 初心者レッスン
           by Minami.rb


                          L esso n 4
このレッスンでやること一覧
1. Railsで何をする?どうしてRails?
2. 作ってみよう事始め
3. プロジェクトとテーブル
4. Railsの役割分担
5. Railsのディレクトリ構成
6. scaffold(デフォルト)でのURL
7. リレーションを考える
8. 日本語対応
9. 見た目をキレイに
10. プラグインを使う
11. ちょっとRubyに働いてもらう
12. herokuに公開しよう
Lesson3の復習

i18nの日本語化


トップページの設定


デザインfix


その他(redirect_to、welcomeページ作成)
プラグインを使う
 プラグイン = Rubyのgem(とくにRailsで使われるもの)
  何を隠そう、Railsもgemのひとつです。


 プラグイン利用の基本
(1) Gemfile に gem を設定
   gem 利用するgem名
(2) コマンド実行(gemのインストール)
   $ bundle install
(3) あとはマニュアル,ReadMe等で、ごにょごにょ・・・
プラグインを使う
 ただ、、、
  プラグインはとてもたくさんあります。
  キビシいようですがひとつひとつ説明していけないので、自分で
 できるようにがんばってマニュアルを読んでいきましょう。


 わりと有名な使えるプラグイン
 devise :ユーザー認証 https://github.com/plataformatec/devise
 kaminari:ページネーション https://github.com/amatsuda/kaminari
 PDFKit :PDF出力(html記述)https://github.com/jdpace/PDFKit
 prawn   : PDF出力(Ruby記述)https://github.com/prawnpdf/prawn
Ruby/Railsに働いてもらう
 言語から見たおおまかな役割分担


                        HTML
                                  ウィンドウ操作
データの集計           データの表示
                                   特殊ボタン
 編集 など            保存・更新
                                ブラウザ上の表示補助
 Ruby    Rails                 JavaScript
                           データ保存・更新、表示指示
                                 など
                   DB
ここら辺の話
             scaffold範囲
Ruby/Railsに働いてもらう
 今回働いてもらうもの
 バリデーションの設定(Railsのメソッド)
 自前メソッドの追加(Rubyで書く自分のメソッド)


 Railsのメソッドは★の数よりは少ないので、少しずつマニュアルや
 本や勉強会、はたまた他人のコードからネタを仕入れましょう。
 Rubyのメソッドの作り方は、基本的なRuby力が必要です。少しず
 つでいいので、マニュアルを読みながら自分でメソッドを書いて
 力をつけましょう。
Ruby/Railsに働いてもらう
  バリデーションの設定 → app/modelsに実装
  例:Workshopのnumberがダブらないようにする
(1) app/models/workshop.rbに実装
    validates :number, uniqueness: true


          対象カラム                   設定
他にも、ブランクチェック、文字数制限など、いろいろ設定あります。
参照:http://guides.rubyonrails.org/active_record_validations_callbacks.html
Ruby/Railsに働いてもらう
  自前メソッドの追加
 → app/controllers 、app/models
   どちらでも実装できることはできる
   でも、controllerはあくまでブラウザとの橋渡し役


      固有のメソッドはmodelに実装するのがスマート
Ruby/Railsに働いてもらう
 自前メソッドの追加
 例:Workshopの参加人数の平均値をworkshops#indexに表示する


 Workshop全体のことなので、ここではクラスメソッドを作ります。


 app/models/workshop.rb
   class Workshop < ActiveRecord::Base


 Workshopクラスで、workshopテーブルのデータをいじります。
Ruby/Railsに働いてもらう
 自前メソッドの追加
 例:Workshopの参加人数の平均値をworkshops#indexに表示する
(1) app/models/workshop.rbに自前メソッドを実装
   def self.person_average
     homuhomu #ここがわからない人はRubyがんばれ
   end
 # self.をつけるとクラスメソッド、なかったらインスタンスメソッド
(2)app/views/workshops/index.html.erbでメソッド呼び出し
   <%= Workshop.person_average %>

             クラスは大文字ではじめる
Ruby/Railsに働いてもらう
 Railsで使えるメソッド
  クラスメソッド
   :主に、テーブルのデータ全体にかかるもの担当
  インスタンスメソッド
   :主に、テーブルの個別データにかかるもの担当
  ヘルパーメソッド
   :主に、viewの見た目を変更するもの担当
考えてみよう
ユーザー認証プラグイン:deviseを設定してみよう
         参考:http://www.slideshare.net/fukajun/minamirbdevise
バリデーションが必要な箇所を考えて設定してみよう
Workshopに参加人数カラムを追加しよう
Workshop参加人数の平均を計算するメソッドを追加しよう
ついでに、参加人数の最高、最低も一緒に表示してみよう
リリースに向けて不備がないか確認しよう
 ex.各ページのデザインが思い通りか、画面遷移は問題ないかetc.
おまけ
  テーブルへのカラム追加、変更、削除
(1) migrationファイル作成
     $ rails generate migration クラス名
     e.g. rails generate migration AddColumnPersonWorkshop
(2)migrationファイル編集
    def change
       カラムメソッド テーブル名, カラム名, ・・・
    end
     e.g. add_column :workshops, :people, :integer
                      参照: http://guides.rubyonrails.org/migrations.html
(3) migrate実行
     $ rake db:migrate
Lesson4は、これで終わりです。
     お疲れさまでした。

More Related Content

PDF
130207 kyotorb
PDF
Capistrano in practice - WebCareer
PDF
Predefを使ったsqlのトレース
PDF
JavaScriptユーティリティライブラリの紹介
PDF
クライアントサイドjavascript簡単紹介
PDF
モダンJavaScript環境構築一歩目
PDF
大規模なJavaScript開発の話
PPTX
Java使いにとっての関数
130207 kyotorb
Capistrano in practice - WebCareer
Predefを使ったsqlのトレース
JavaScriptユーティリティライブラリの紹介
クライアントサイドjavascript簡単紹介
モダンJavaScript環境構築一歩目
大規模なJavaScript開発の話
Java使いにとっての関数

What's hot (20)

PPTX
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
PPTX
つぶLT20121215
PDF
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
KEY
Scalaはじめました!
PDF
JavaScript MVC入門
PDF
Gruntの罪と罰
PDF
「愛されたい!」と思ったときにJavaで書くRubyクラス
PPTX
Clrh 110827 wfho
PDF
第5回名古屋若手Webエンジニア交流会
PDF
福岡Ruby会議01 20121201 LT
PPTX
Capistrano introduction
PDF
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
PDF
早く家へ帰るための
Grunt入門
[+gulp紹介]
PDF
JavaScriptおよびXPages Vote技術解説
PDF
Scheme Interpreter in Ruby
PDF
PSMTabBarControl
PDF
JavaScript 研修
PPTX
Node.jsで使えるファイルDB"NeDB"のススメ
PPTX
第5回Sql server2017勉強会資料
PDF
Javascriptのあれやこれやをまとめて説明してみる
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
つぶLT20121215
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
Scalaはじめました!
JavaScript MVC入門
Gruntの罪と罰
「愛されたい!」と思ったときにJavaで書くRubyクラス
Clrh 110827 wfho
第5回名古屋若手Webエンジニア交流会
福岡Ruby会議01 20121201 LT
Capistrano introduction
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
早く家へ帰るための
Grunt入門
[+gulp紹介]
JavaScriptおよびXPages Vote技術解説
Scheme Interpreter in Ruby
PSMTabBarControl
JavaScript 研修
Node.jsで使えるファイルDB"NeDB"のススメ
第5回Sql server2017勉強会資料
Javascriptのあれやこれやをまとめて説明してみる
Ad

Viewers also liked (15)

PPTX
こんなGemつかってますよ話
PDF
20150215勉強会
PDF
リソースモデリングパターンの提案 #sendagayarb
PDF
台湾官公庁におけるRuby on Railsを導入する事例
PDF
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
PDF
RailsでつくるTwitterアプリ Ruby / Ruby on Rails ビギナーズ倶楽部
PDF
Rails templateで開発の初速を上げよう
PDF
名古屋Ruby会議02 LT:Ruby中級への道
PPTX
Benchmarkspec
PDF
[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)
PDF
Ruby使いのためのScalaのススメ
PDF
バカでもわかるRails #02
PPTX
なぜ「教育のためのTOC」か?
PDF
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
PDF
デキるプログラマだけが知っているコードレビュー7つの秘訣
こんなGemつかってますよ話
20150215勉強会
リソースモデリングパターンの提案 #sendagayarb
台湾官公庁におけるRuby on Railsを導入する事例
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
RailsでつくるTwitterアプリ Ruby / Ruby on Rails ビギナーズ倶楽部
Rails templateで開発の初速を上げよう
名古屋Ruby会議02 LT:Ruby中級への道
Benchmarkspec
[コデアル株式会社] Ruby on rails 開発環境設定勉強会(株式会社シンクスマイル主催)
Ruby使いのためのScalaのススメ
バカでもわかるRails #02
なぜ「教育のためのTOC」か?
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
デキるプログラマだけが知っているコードレビュー7つの秘訣
Ad

Similar to Rails初心者レッスン lesson4 2edition (20)

PDF
nomlab_okayamaruby_slide
PDF
Ruby on Rails 入門
PPTX
【勉強会】 はじめてのRuby on Rails 4入門
PPT
Ruby on Rails3 Tutorial Chapter2
PDF
Next-L Enju 開発WS #03 Ruby on Railsの使い方
PPTX
フレームワーク品評会 Ruby on Rails #crossjp
PPT
Ruby on Rails Tutorial Chapter8-10
PDF
Rails初心者レッスン lesson2 3edition
PDF
Rails Controller Fundamentals
PPT
Ruby on Rails Tutorial Chapter5-7
PPTX
Tech fun rails_workshop
PDF
Ruby on Rails Tutorial
PPT
Ruby on Rails Tutorial Chapter11-13
PDF
Ruby introduction for_rails
PDF
ゼロからのプログラミングRails講座 Codeanywhere版
KEY
QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場
PDF
Rubyで作るtwitter風webアプリケーション
PDF
はじめての Rails アプリ開発
PDF
nomlab_okayamaruby_subslide
PDF
How to learn Rails
nomlab_okayamaruby_slide
Ruby on Rails 入門
【勉強会】 はじめてのRuby on Rails 4入門
Ruby on Rails3 Tutorial Chapter2
Next-L Enju 開発WS #03 Ruby on Railsの使い方
フレームワーク品評会 Ruby on Rails #crossjp
Ruby on Rails Tutorial Chapter8-10
Rails初心者レッスン lesson2 3edition
Rails Controller Fundamentals
Ruby on Rails Tutorial Chapter5-7
Tech fun rails_workshop
Ruby on Rails Tutorial
Ruby on Rails Tutorial Chapter11-13
Ruby introduction for_rails
ゼロからのプログラミングRails講座 Codeanywhere版
QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場
Rubyで作るtwitter風webアプリケーション
はじめての Rails アプリ開発
nomlab_okayamaruby_subslide
How to learn Rails

More from Satomi Tsujita (20)

PDF
Osaka rubykaigi01
PDF
Rubykansai 81
PDF
Raspberry Pi3 のCPUまわりを整理してみた
PDF
2017年12月 linux kernel
PDF
2017年9月 サイト紹介
PDF
Devfes kyoto2017
PDF
いわみくとMeetup第15回
PDF
セキュリティー入門(メールウイルス編)
PDF
Gemの話 紹介編
PDF
RubyとRailsのおいしい使い方 ver. okayama1
PDF
RubyとRailsのおいしい使い方
PDF
Minami.rbの履歴書
PDF
PDF
Rubyビジネスセミナー大阪2015
PDF
経理屋がRailsを始めた理由
PDF
JAWS-UG2014
PDF
Rails初心者レッスン lesson3 3edition
PDF
Uragamiso re
PDF
Sql基礎の基礎
PDF
Rails初心者レッスン lesson5 2edition
Osaka rubykaigi01
Rubykansai 81
Raspberry Pi3 のCPUまわりを整理してみた
2017年12月 linux kernel
2017年9月 サイト紹介
Devfes kyoto2017
いわみくとMeetup第15回
セキュリティー入門(メールウイルス編)
Gemの話 紹介編
RubyとRailsのおいしい使い方 ver. okayama1
RubyとRailsのおいしい使い方
Minami.rbの履歴書
Rubyビジネスセミナー大阪2015
経理屋がRailsを始めた理由
JAWS-UG2014
Rails初心者レッスン lesson3 3edition
Uragamiso re
Sql基礎の基礎
Rails初心者レッスン lesson5 2edition

Rails初心者レッスン lesson4 2edition