ル微王徴

Rubyの読み方

最終更新:

rubyocho

- view
メンバー限定 登録/ログイン

Railsによく出るRubyの読み方

app/controllers/memo_controller.rb

  • MemoController
     class MemoController < ApplicationController
     def list
       @memo_pages, @memos = paginate :memos, :per_page => 10
     end
    
  • 関数を呼び出す際に使う()カッコや、ハッシュを表す||波カッコを省略可能
     class MemoController < ApplicationController
     def list
       (@memo_pages, @memos) = paginate(:memos, |:per_page => 10|)
     end
    
  • クラス名は大文字ではじめる
    MemoController
    
  • 「 X < Y 」:Yクラスを継承して、Xクラスを定義
    • ApplicationControllerクラスを継承して、MemoControllerクラスを定義
  • MemoControllerクラスのメンバー関数(メソッド)「list()」を定義
    def 関数名()
      処理内容
    end
    
  • メソッドlistの中身
    (@memo_pages, @memos) = paginate(:memos, |:per_page => 10|)
    
    1. @memo_pages
      • @で始まる変数をインスタンス変数と呼び、インスタンス固有の変数を表す
      • インスタンス変数は、インスタンス(オブジェクト)が生きている限り有効
      • Railsでは、コントラーの中からビューに渡す値を入れておくのにも、このインスタンス変数を使う
    2. paginate()関数
      • @memo_pages, @memosという2つの値を返している
      • @memo_pages, @memosは、MemoControllerの中で使えるメンバー変数(プロパティ)
    3. :(コロン)で始まる名前。:memos, :per_page
      • シンボル
      • シンボルは内部的に数字で表されるために、ハッシュの引数などで使うと効率が良い
      • オブジェクトの名前やハッシュのキーの場合にシンボルを使う
      • メッセージなどでは文字列を使う
    4. :per_page => 10
      • ハッシュテーブル(連想記憶配列)を定義
      • 「:per_page」というキー(インデックス)に「10」という値をいれて、paginate()関数の2つ目の引数に渡している。
    • 一つの関数で複数の戻り値を持つことができる
  • app/controllers/memo_controller.rbの中には、他に、indexやshowなど様々なメソッドが定義されている。

マイグレーションファイル 001_create_memos.rb

  • db/migrate/001_create_memos.rb
    class CreateMemos < ActiveRecord::Migration
      def self.up
        create_table :memos do |t|
          t.column :title, :string
          t.column :body, :text
          t.column :created_at, :datetime
          t.column :update_at, :datetime
        end
      end 
    
      def self.down
        drop_table :memos
      end
    end
    
  • [1] ActiveRecord::Migrationを継承するCreateMemosクラス
  • [2] self.upメンバー関数を定義。self. をつけた関数は、CreateMemos.up()のように呼び出す。
  • [3] create_table関数を、引数:memosを与えて呼び出す
    create_table (:memos) do |t|
    
    • create_table(引数)は、引数の名前でテーブルを生成
    • :memosテーブルを生成し、do |t|後 [4]-[7]行目でテーブルを定義
    • 「do-end」はブロック。ブロック付メッソッド呼び出し

ウィキ募集バナー