rails初心者レッスン lesson4 2edition

15
Rails3 初心者レッスン by Minami.rb 第2版 Rails3.1 Lesson 4

Upload: satomi-tsujita

Post on 26-May-2015

978 views

Category:

Technology


1 download

DESCRIPTION

Minami.rb

TRANSCRIPT

Page 1: Rails初心者レッスン lesson4 2edition

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

第2版Rails3.1

Lesson 4

Page 2: Rails初心者レッスン lesson4 2edition

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

Page 3: Rails初心者レッスン lesson4 2edition

Lesson3の復習

i18nの日本語化

トップページの設定

デザインfix

その他(redirect_to、welcomeページ作成)

Page 4: Rails初心者レッスン lesson4 2edition

プラグインを使うプラグイン = Rubyのgem(とくにRailsで使われるもの) 何を隠そう、Railsもgemのひとつです。

プラグイン利用の基本(1) Gemfile に gem を設定 gem ‘利用するgem名’(2) コマンド実行(gemのインストール) $ bundle install(3) あとはマニュアル,ReadMe等で、ごにょごにょ・・・

Page 5: Rails初心者レッスン lesson4 2edition

プラグインを使うただ、、、

  プラグインはとてもたくさんあります。  キビシいようですがひとつひとつ説明していけないので、自分で できるようにがんばってマニュアルを読んでいきましょう。

わりと有名な使えるプラグインdevise :ユーザー認証 https://github.com/plataformatec/devisekaminari:ページネーション https://github.com/amatsuda/kaminariPDFKit :PDF出力(html記述)https://github.com/jdpace/PDFKitprawn : PDF出力(Ruby記述)https://github.com/prawnpdf/prawn

Page 6: Rails初心者レッスン lesson4 2edition

scaffold範囲

Ruby/Railsに働いてもらう言語から見たおおまかな役割分担

DB

データの表示保存・更新

HTML

JavaScriptRails

データ保存・更新、表示指示など

Ruby

データの集計編集 など

ウィンドウ操作特殊ボタン

ブラウザ上の表示補助

ここら辺の話

Page 7: Rails初心者レッスン lesson4 2edition

Ruby/Railsに働いてもらう今回働いてもらうものバリデーションの設定(Railsのメソッド)自前メソッドの追加(Rubyで書く自分のメソッド)

Railsのメソッドは★の数よりは少ないので、少しずつマニュアルや本や勉強会、はたまた他人のコードからネタを仕入れましょう。Rubyのメソッドの作り方は、基本的なRuby力が必要です。少しずつでいいので、マニュアルを読みながら自分でメソッドを書いて

 力をつけましょう。

Page 8: Rails初心者レッスン lesson4 2edition

Ruby/Railsに働いてもらうバリデーションの設定 → app/modelsに実装例:Workshopのnumberがダブらないようにする

(1) app/models/workshop.rbに実装 validates :number, uniqueness: true

他にも、ブランクチェック、文字数制限など、いろいろ設定あります。参照:http://guides.rubyonrails.org/active_record_validations_callbacks.html

対象カラム 設定

Page 9: Rails初心者レッスン lesson4 2edition

Ruby/Railsに働いてもらう自前メソッドの追加

 → app/controllers 、app/models   どちらでも実装できることはできる   でも、controllerはあくまでブラウザとの橋渡し役

固有のメソッドはmodelに実装するのがスマート

Page 10: Rails初心者レッスン lesson4 2edition

Ruby/Railsに働いてもらう自前メソッドの追加例:Workshopの参加人数の平均値をworkshops#indexに表示する

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

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

 Workshopクラスで、workshopテーブルのデータをいじります。

Page 11: Rails初心者レッスン lesson4 2edition

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 %>

クラスは大文字ではじめる

Page 12: Rails初心者レッスン lesson4 2edition

Ruby/Railsに働いてもらうRailsで使えるメソッドクラスメソッド

   :主に、テーブルのデータ全体にかかるもの担当インスタンスメソッド

   :主に、テーブルの個別データにかかるもの担当ヘルパーメソッド

   :主に、viewの見た目を変更するもの担当

Page 13: Rails初心者レッスン lesson4 2edition

考えてみようユーザー認証プラグイン:deviseを設定してみよう

 参考:http://www.slideshare.net/fukajun/minamirbdeviseバリデーションが必要な箇所を考えて設定してみようWorkshopに参加人数カラムを追加しようWorkshop参加人数の平均を計算するメソッドを追加しようついでに、参加人数の最高、最低も一緒に表示してみようリリースに向けて不備がないか確認しよう ex.各ページのデザインが思い通りか、画面遷移は問題ないかetc.

Page 14: Rails初心者レッスン lesson4 2edition

おまけテーブルへのカラム追加、変更、削除

(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

Page 15: Rails初心者レッスン lesson4 2edition

Lesson4は、これで終わりです。お疲れさまでした。