rails初心者レッスン lesson4 2edition
DESCRIPTION
Minami.rbTRANSCRIPT
Rails3 初心者レッスンby Minami.rb
第2版Rails3.1
Lesson 4
このレッスンでやること一覧1. Railsで何をする?どうしてRails?2. 作ってみよう事始め3. プロジェクトとテーブル4. Railsの役割分担5. Railsのディレクトリ構成6. scaffold(デフォルト)でのURL7. リレーションを考える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/devisekaminari:ページネーション https://github.com/amatsuda/kaminariPDFKit :PDF出力(html記述)https://github.com/jdpace/PDFKitprawn : PDF出力(Ruby記述)https://github.com/prawnpdf/prawn
scaffold範囲
Ruby/Railsに働いてもらう言語から見たおおまかな役割分担
DB
データの表示保存・更新
HTML
JavaScriptRails
データ保存・更新、表示指示など
Ruby
データの集計編集 など
ウィンドウ操作特殊ボタン
ブラウザ上の表示補助
ここら辺の話
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は、これで終わりです。お疲れさまでした。