読者です 読者をやめる 読者になる 読者になる

Ruby (on Rails)入門 ~現在、勉強中(2015年6月開始)~

Ruby、Ruby on Railsを勉強中。参考書を読んだり、ネット情報を読むだけでは忘れてしまうのでメモする。

Ruby勉強中のメモ

配列 配列には複数の要素を格納することができる 配列にはどのようなオブジェクトも要素として格納できる。(同じ配列に数値と文字列の混在などできる) 配列の使い方 配列の作成 person = ["田中", "山田", "佐藤"] ※空の配列の作成 person = [] 配列内の要素…

【Ruby (on Rails)プログラミング入門メモ#102】confirmオプションでアラートが表示されない

問題 ↓の書籍で勉強していた。 RailsによるアジャイルWebアプリケーション開発 第4版 ボタンを押した時にアラートを表示したいが、 書籍に記載のソースでは表示されない。 <%= button_to 'カートを空にしますか?', @cart, method: :delete, confirm: '本当…

【Ruby (on Rails)プログラミング入門メモ#?】文字列の検索

ある文字列の中に特定の文字列が含まれているかを 検索する場合、下記3つのメソッドを使う。 ・indexメソッド 検索対象の文字列を左から検索 ・rndexメソッド 検索対象の文字列を右から検索 ・include?メソッド 検索文字列が含まれているか、含まれていない…

【Ruby (on Rails)プログラミング入門メモ#?】railsでWebサイトのrootのURLを設定する

この記事を読んでわかること railsでWebサイトのrootのURLを設定する方法 手順 1. config/routes.rbを開く 2. rootの設定を追加する root to: 'コントローラ名#アクション名', as: 'コントローラ名' 例 コントローラ:persons アクション:index root to: 'p…

【Ruby (on Rails)プログラミング入門メモ#?】ブロックの結果を取得する

ブロックの結果を取得する 現在日時を取得します。 ブロックがある場合には現在日時をフォーマットします。 # 現在日時を返す # ブロックがある場合、ブロックでフォーマットした結果を返す def today today = Time.now today_text = "" if block_given? tod…

【Ruby (on Rails)プログラミング入門メモ#?】ブロック付きメソッドの作成

ブロック付きメソッドを作成する メソッドの中で「yield」を実行すればよい。 ブロックに変数を渡したい場合、 yield(a, b, c) のようにyieldの後ろに渡してあげればいい。 例:現在日付を返すブロック付きメソッド 下記todayメソッドを実行すると、 ブロック…

【Ruby (on Rails)プログラミング入門メモ#?】オブジェクトにメソッドを定義する

この記事を読んでわかること オブジェクトにメソッドを定義する方法 オブジェクトにメソッドを定義する 特異クラスを使って、オブジェクトにメソッドを定義します。 # Personというクラスが定義されている class Person def hello puts "hello" end end # イ…

【Ruby (on Rails)プログラミング入門メモ#?】クラスメソッドの定義

この記事を読んでわかること クラスメソッドを定義する方法 特異クラスで定義する # Personというクラスが定義されている class Person def hello puts "hello" end end # クラスメソッドの定義 class << Person def bye puts "bye" end end # 実行 Person.b…

【Ruby (on Rails)プログラミング入門メモ#?】オブジェクトがあるクラスとis-a関係にあるかの判断

この記事を読んでわかること オブジェクトがあるクラスとis-a関係にあるかの判断 例 names = ["Yamada", "Tanaka", "Sato"] # is_a?メソッドを使う if names.is_a?(String) print "Stringクラスとis-a関係にあります" elsif names.is_a?(Object) print "Obje…

【Ruby (on Rails)入門メモ#?】特異クラスで特定の「オブジェクト」にメソッドを追加

クラスにクラスメソッドを追加するために使うこともできるが、 特異クラスを使うと特定の「オブジェクト」にメソッドを追加できる。■サンプル ##特定のオブジェクトにメソッドを追加 masami = "まさみ" haruka = "はるか" #masamiオブジェクトにだけメソッド…

【Ruby (on Rails)入門メモ#?】aliasとundefの使い方

aliasを使うとメソッドに別名を割り当てられる。 undefを使うとメソッドを削除できる。■定義 alias 別名 元のメソッド名 undef メソッド名■使用例 ##aliasとundefの使い方 class Animal def say "がー" end def hello "はろー" end end class Dog < Animal #…

【Ruby (on Rails)入門メモ#?】既存のクラスにメソッドを追加する

既存のクラスにメソッドを追加できる。■例 StringクラスにaddYeahメソッドを追加する ##既存のクラスにメソッドを追加 class String #文字列に",Yeah!"を追加して返す def addYeah return self + ",Yeah!" end end #実行 text = "疲れたー" puts text.addYea…

【Ruby (on Rails)入門メモ#?】メソッドの呼び出し制限(publicとprivate)

メソッドの呼び出しを制限する。 アクセス制限が3種類ある。・public クラス外で実行可能・private クラス内でだけ実行可能・protected 下記では①publicと②privateを試す。■アクセス制限レベルの設定方法 ①メソッドを定義した後に アクセス制限レベル(public…

【Ruby (on Rails)入門メモ#?】クラスにクラス定数・クラス変数を定義

①クラス定数 ■定数の定義 class クラス名 定数名(先頭文字は大文字) = 値 end 使い方 クラス名::定数名 ■例 #クラス作成 class Person #クラス定数の定義 Hello = "こんにちは" end #クラス定数の参照 puts Person::Hello ■結果 ②クラス変数 ■変数の定義 cla…

【Ruby (on Rails)入門メモ#?】クラスメソッドを作る

クラスメソッドは、インスタンスではなく、クラスをレシーバとするメソッド。■定義 クラス定義の中に下記のように作成する。 #クラスメソッド定義方法① class << クラス名(またはself) def メソッド名(引数) 処理 end end #クラスメソッド定義方法② def クラ…

【Ruby (on Rails)入門メモ#?】クラスを作成する

すでに定義されているクラスを拡張して新しいクラスを作成すること。 RubyのすべてのクラスはBasicObjectクラスのサブクラスとなっている。■継承関係にあるかの確認 #継承関係にあるかの確認(is_a?メソッド) text = "たなかさん" p text.is_a?(String) # tru…

【Ruby (on Rails)入門メモ#?】オブジェクトの作成

クラスはオブジェクトの種類を表す。 オブジェクトの設計図やひな形。■オブジェクトの作成 ##オブジェクトの作成 array = Array.new p array # 配列は空なので、[]が出力される ■オブジェクトが属しているクラスの確認 #オブジェクトがどのクラスに属してい…

【Ruby (on Rails)入門メモ#?】キーワード引数を使ったメソッド、引数にハッシュを渡す

■引数に配列を指定し、展開する・引数で指定された3つの文字列を出力する ## 引数に配列を指定し、展開する #テスト用メソッド定義 def hello(a, b, c) puts a puts b puts c end #引数に3つの文字列を渡して実行 hello("ooo", "bbb", "ccc") #3つの文字列が…

【Ruby (on Rails)入門メモ#?】キーワード引数を使ったメソッド

キーワード引数を使うとメソッドを定義したときの順番・個数で 引数を指定する必要は無くなる。[定義] def メソッド名(引数1の名前: 引数1のデフォルト値, 引数2の名前: 引数2のデフォルト値, ・・・, 引数nの名前: 引数nのデフォルト値) 処理 end■メソッド…

【Ruby (on Rails)入門メモ#?】引数の数が不定なメソッド

引数の数が決まっていないメソッドは引数に *変数名 で定義する。[定義] ・引数を指定しないくてもいい def メソッド名(*引数名) 処理 end・引数を少なくともひとつは指定させる場合 def メソッド名(引数名A, *引数名B) 処理 end■指定された引数の数字を全部…

【Ruby (on Rails)入門メモ#?】メソッドの戻り値

メソッドの中でreturn文を使うことでメソッドの戻り値を指定できる。■簡単な例 ・四角形の面積を求めるメソッド #四角形の面積を求めるメソッド def calcSquare(x, y) return x * y end #メソッドを使う result = calcSquare(10, 30) puts result ■return文…