Ruby on Rails チュートリアル メモ #3

第4章

  • $ rails console (or rails c) Rails コンソールを起動
  • デフォルトでは開発 (development) 環境で立ち上がる
  • コメントは "#" から始まる
  • #{} 式展開
  • puts を使用して出力すると、改行文字 (¥n) が自動的に末尾に追加される
  • print を使用して出力すると、改行文字が追加されない
  • ダブルクォートもシングルクォートも同じ文字列を表現するが、シングルクォートの中では式展開は行われない
  • ダブルクォートでは式展開されるので # をバックスラッシュでエスケープする必要がある
  • シングルクォートは入力した文字をエスケープせずに「そのまま」保持するときに便利
  • オブジェクトは何をするか?オブジェクトとはメッセージに応答するもの
  • メッセージ = メソッド
  • メソッドの末尾に ? を付けることで、論理値(boolean) を返すことを示す
  • nil もオブジェクト
  • オブジェクトのうち、論理値が false になるのは false と nil
  • 0 も true
  • 関数は暗黙の戻り値を持つ。これは、最後に評価された式の値が自動的に返されることを意味する
  • モジュールは関連したメソッドをまとめる
  • クラスに include することでミックスインできる
  • 配列の内容を変更したい場合は、破壊的メソッドを使用する
  • 配列にはさまざまな共存させることができる
  • ブロック
    • { }
    • do end
  • ハッシュは並び順が保証されていない
    • Ruby 1.9 ではハッシュの順序が入力順と同じであることを保証しているが、ハッシュを特定の順序に依存してカウントさせるべきではない
  • キーと値はハッシュロケット(=>)によって表現する
  • ハッシュのキーはシンボルを使うのが普通
    • user = { "first_name" => "ka", "last_name" => "be" }
    • user = { :first_name => "ka", :last_name => "be" }
    • user = { first_name: "ka", :last_name: "be" } Ruby 1.9 から
  • Rails でよく使われているハッシュの使用法
  params = {}        # 'params' というハッシュを定義する ('parameters' の略)。
  params[:user] = { name: "Michael Hartl", email: "mhartl@example.com" }
  => {:name=>"Michael Hartl", :email=>"mhartl@example.com"}
  params
  => {:user=>{:name=>"Michael Hartl", :email=>"mhartl@example.com"}}
  params[:user][:email]
  => "mhartl@example.com"
  • ハッシュの each メソッドでは、ブロックの変数がキーと値になっている
  • オブジェクトを表現する文字列を返す便利メソッド inspect
  • p メソッド = inspect メソッド + puts メソッド
  irb(main):010:0> p :name
  :name
  => :name
  irb(main):011:0> puts :name
  name
  => nil
  irb(main):012:0> puts :name.inspect
  :name
  => nil
  • Ruby は関数呼び出し時に丸かっこの省略可能
  • ハッシュが関数呼び出しの最後の引数である場合、波かっこの省略可能
  [1] pry(main)> def func(a, b)
  [1] pry(main)*   p a
  [1] pry(main)*   p b
  [1] pry(main)* end
  => nil
  [2] pry(main)> func('hoge', :a => 'fuga')
  "hoge"
  {:a=>"fuga"}
  => {:a=>"fuga"}
  • シンボルにハイフンを使用できない
  • ハッシュでハイフンを含むキーを設定する場合、ハッシュロケット記法を使用する
  • Ruby はプログラム内の改行の有無に左右されない
  • ハッシュのコンストラクタ (Hash.new) はデフォルト値を引数に取る(キーが存在しない場合のデフォルト値になる)
  • メソッドがクラス自身に対して呼び出される => クラスメソッド
  • インスタンスに対して呼び出すメソッド => インスタンスメソッド
  • superclass メソッドでクラス階層を調べられる
  • クラスの中では self はオブジェクト自身を指す
  • Ruby では組み込みの基本クラスの拡張が可能
  • 大いなる力には大いなる責任が伴います <= スパイダーマンの名台詞
  • Rails コンソールは、セッションごとにローカルの Rails 環境を読み込む
  • だから、コンソール内でコントロールを作成したりできる
  • Rails のアクションには戻り値がない(返される値は重要ではない)
  • home アクションは Web ページを作成するもの(値を返すものではない)
  • コントローラーのインスタンス変数はビューで自動的に使えるようになる
  • インスタンス変数は @ から始まり、未定義の場合は nil
  • require './example_user' でカレントディレクトリから example_user ファイルを探す