RailsでWebアプリケーションを作りたい人。Rubyを一から勉強して理解するのは面倒ですよね。RubyとRailsは別物とも言われます。実際問題、Rubyを理解していなくてもRailsで動くアプリケーションを作ることはできます。(Railsはそれほど強力なツールであるということです。)しかし!RailsはRubyで書かれていますので、コードを読み解き、動きを理解するのにRubyの知識は必要です。今回はそんなRails上達の一歩目として最低限知っておきたいRubyの知識をまとめました。オブジェクト間の相互作用でシステムの振る舞いを捉える考え方。すべてのオブジェクトはなんらかのclassに属し、classに定義されたメソッドを呼びだして処理を行うことができる。オブジェクト指向に関しては様々な議論があるので、興味のある人は調べてみてください。人間の扱う言語(英語)のように記述できる軽量言語。コンパイル(機械語への翻訳)せずに実行できる。JavaScriptなどがある。実行時にプログラムを一文ずつ処理する。ユーザーの入力に応じて処理を分岐させたりすることが可能となる(クラス定義を分岐させたり)。コンパイラ言語だとコンパイル時にクラスやメソッドの定義が行われる。Rubyで扱える主なデータ型(組み込みクラス)組み込みクラスのオブジェクトには様々便利なメソッドがあらかじめ準備されています。Railsを使いこなすためにどのようなクラスにどのようなメソッドが呼び出し可能かを把握しましょう。Class'あるいは"で囲われた文字の列。"の中では#{...}を用いた式展開が可能。文字列は+で結合することが可能。Class数値を扱う。Integerは整数を扱い、Floatは浮動小数点数を扱える。数値クラスのオブジェクトはto_sメソッドを用いることで文字列に変換できる。(逆に文字列で表された数値はto_iメソッドでIntegerに変換できる。Classでは、複数のオブジェクトを保持する配列が扱える。配列は[]で囲い、オブジェクトを,で区切ることによって複数のオブジェクトを保持できる。配列内のオブジェクトは要素の番号で参照することができる。"taro"配列の要素の内容を書き換えたり、要素を追加する方法もあるので、詳しくはドットインストールなどを参照してください。ハッシュ配列では、要素のオブジェクトを配列の番号で呼びだすことで要素を参照することができましたが、ハッシュオブジェクトでは要素を参照する名前をつけることができます。"value1"メタプログラミングRubyは非常に自由度が高い言語であるため、より抽象的なプログラムを書くことによって組み込みクラスの定義をいじったり、様々なことができます。classすべてのオブジェクトはなにがしかのクラスに属しています。オブジェクトは属するクラスに定義されたメソッドを呼びだすことができます。いうメソッドはStringクラスに予め定義された文字をすべて大文字にするメソッドですが、これはIntegerクラスには定義されていないため、Integerクラスに属するオブジェクトが呼び出そうとするとNoMethodErrorが呼び出されます。"1220"しかし、上の記述のように、Integerクラスのnumをto_sメソッドによって文字列にすることでupcaseメソッドを呼び出すことができます。classの定義クラスは組み込みクラスを利用する他に、自分で新たなクラスを定義することもできます。これによってプログラミングの幅が格段に開けます。実際に自分で新しいクラスを作ってそこにメソッドを定義してみます。endendここでAnimalクラスが定義できました。Animalクラスにオブジェクトをつくると、定義されているgreetメソッドを呼び出すことができます。Hanako"クラスの継承クラスの継承によって、新たに定義するクラスに継承したクラスのメソッドを呼び出せる力を与えることができます。上で定義したAnimalクラスではgreetというメソッドを定義しましたので、Animalクラスに属するtaro君はgreetメソッドを呼び出すことができました。ここでAnimalクラスを継承したHumanクラスを定義してみましょう。#継承したいクラスは<で書く。endendこれでAnimalクラスを継承したHumanクラスが定義できました。継承したクラスをSuperClassといいます。Humanクラスのオブジェクトを作ってメソッドを呼び出してみましょう。#<Animal...このように、Animalクラスを継承しているHumanクラスのjiroはgreet,byeメソッドのどちらも呼び出すことができます。Animalクラスにはbyeメソッドが定義されていないためtaroはbyeメソッドを呼び出すことができません。変数とスコープこの項ではRubyで使っていく変数の種類とそのスコープについて説明していきます。スコープとはある変数を参照できる範囲で、例えばメソッドの中で宣言されたローカル変数をメソッドの外から参照することはできません。ローカル変数ローカル変数とは英小文字あるいは_から始まる変数です。ローカル変数のスコープはクラス、モジュール、メソッド定義の中です。クラス定義の中で宣言されたローカル変数はそのクラスの中から参照可能であるということになります。インスタンス変数@ではじまる変数がインスタンス変数です。インスタンス変数は特定のオブジェクトに属し、そのクラス内あるいはサブクラスのメソッドから参照可能です。クラス変数@@で始まる変数がクラス変数です。クラス変数はクラス定義の中で宣言されることで利用可能となります。クラスの特異メソッド、インスタンスメソッドからの参照、代入が可能です。クラスを継承した子クラスで同じ名前のクラス変数が宣言されるとその値が上書きされてしまうため注意が必要です。基本構文Rubyは非常にシンプルな構文を備えています。簡単に、なにか与えた言葉を表示する関数を定義してみましょう。Helloこのように、関数はシンプルに記述することができます。関数に引数をあたえることで、関数が呼び出されるときにその引数を使うことができます。関数はクラスに属するオブジェクトが自分の属するクラスに定義されたものを呼び出すことができます。よって操作を分岐させたいときに便利なのが以下の条件分岐構文です。ネストして書くことも可能ですが、あまりに多用しすぎるとこんがらがって難解なコードになってしまうので気をつけて活用しましょう。:("このように、if文を用いて与えられた情報を判断して、条件に合わせた処理を行うことができます。case文if文の他に条件に合わせて処理を変えたいときにcase文を使うこともできます。caseぶんはあるオブジェクトに対してその値に関して条件分岐をさせるのに向いています。case文は次のように記述します。今回書いてきたRubyのはなしはRailsを扱う上で最低限のものです。Railsで自由自在にアプリケーションを作りたいと思っている人は自分の力でどんどんRubyの知識をつけていくことが必須でしょう。入門編では動画でプログラミングを丁寧に解説しているサイトなどがオススメです。