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

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

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

Ruby勉強中のメモ

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

【Ruby (on Rails)プログラミング入門メモ#103】メールアドレスとパスワードを使ったログイン機能を作るサンプル ~①ユーザー登録~

この記事を読んでわかること メールアドレスとパスワードを使ったログイン機能の作成方法の一部(ユーザー登録) 試す前に railsでアプリを作っておくこと 1. bcryptインストール gemでbcryptをインストールします。 Gemfileを開きます。 bcryptに関する行はコ…

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

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

【Ruby (on Rails)プログラミング入門メモ#101】form_forメソッドの中で複数のモデルを扱う方法

この記事を読んでわかること form_forメソッドの中で複数のモデルを扱う方法 方法 fields_forメソッドを使う。 下記、boardモデルとcommentモデルがある場合のサンプル。 boardモデルとcommentモデルは1対多の関係。 <%= form_for(@board) do |f| %> <div class="field"> <%= f.</div>…

【Ruby (on Rails)プログラミング入門メモ#100】railsの基本的なルート設定

この記事を読んでわかること 基本的なルート設定方法 railsはroutes.rbファイルにルート設定を書く。 resourcesメソッド 下記アクションが生成される。 index show new create edit update destroy resources :categories resourceメソッド indexアクション…

【Ruby (on Rails)プログラミング入門メモ】掲示板アプリ作成(002 アプリケーション作成)

この記事を読んでわかること scaffoldを使用して、モデルとその管理機能を作成する方法 今後作ろうと思う機能 新規スレッド作成する スレッドにコメントする スレッドを一覧を表示する スレッドの詳細を表示する カテゴリを管理する カテゴリ スレッドをカテ…

【Ruby (on Rails)プログラミング入門メモ】掲示板アプリ作成(001 アプリケーション作成)

この記事を読んでわかること Ruby on railsのアプリ作成 勉強したことをもとに簡単な掲示板アプリケーションを作ります。 まだ勉強が少ないので、アプリケーションを作りつつ、 いろんなテーマに行ったり来たりすると思います。 アプリ作成 1. アプリケーシ…

【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)プログラミング入門メモ#?】オブジェクトがあるクラスに属しているかの判断

この記事を読んでわかること オブジェクトが属するクラス名の確認方法 オブジェクトがあるクラスに属しているかの判断 例 names = ["Yamada", "Tanaka", "Sato"] # オブジェクトが属するクラス名 # classメソッドを使う puts names.class # あるクラスのイン…

【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文…

【Ruby (on Rails)入門メモ#?】メソッドの定義

■メソッドの定義 def メソッド名(引数1, 引数2, ..., 引数n) 処理 end※数字で始まるメソッド名はNG。アルファベット、数字、アンダースコアを使用可能。※例 ##メソッドの定義 def say(name) puts "#{name}が好き!" end #定義したメソッドの実行 say("ガッキ…

【Ruby (on Rails)入門メモ#?】メソッドの種類

■メソッドの分類 1.インスタンスメソッド 2.クラス・メソッド 3.関数メソッド■インスタンスメソッド オブジェクト(インスタンス)に対して実行するメソッド※例 ##インスタンスメソッド #文字列を指定した文字(,)で分割 p "1,2,3,4,5".split(",") #数値を文字…

【Ruby (on Rails)入門メモ#?】メソッドの呼び出し方法

■メソッドの呼び出し方法 1.単純なメソッド呼び出し 2.ブロック処理付きメソッド呼び出し 3.演算子形式のメソッド呼び出し■単純なメソッド呼び出し オブジェクト.メソッド名(引数1,引数2,...,引数n)※引数がない場合、()は省略可能※例 #"999"がオブジェクト、…

【Ruby (on Rails)入門メモ#4】条件分岐に使用される真偽値、論理演算子

条件分岐に使われる主な構文は下記3つ。 ・if文 ・unless文 ・case文これらの使い方は後ほど。 まずは条件分岐で使用される真偽値、論理演算子を学ぶ。■Rubyの真偽値を表すのは?・真 false、オブジェクトがnil以外の場合・偽 false、オブジェクトがnilの場…

【Ruby (on Rails)入門メモ#3】コメントの書き方

プログラムの実行には影響を与えない。 プログラムを読む人のための補足情報を書く。■1行コメント #をつける。 #をつけたところから行末まではコメントとなり、 プログラムの実行には影響を与えない。※例 ##1行コメント print "この後はコメントです" #コメ…

【Ruby入門メモ#1】文字列表示(print, puts, p)

文字列を表示(出力)する。 ■文字列表示に使われるメソッド ・printメソッド 文字列を出力する。 printメソッドは文字列の最後に改行を入れない。 ・putsメソッド printメソッドは文字列の最後に改行を入れてくれないが、 putsメソッドは文字列の最後に改行…

【Ruby (on Rails)入門メモ#2】変数

■変数とは? 文字列や数値などを入れる入れ物。 入れ物には名前をつけることができ、この名前で中身を取り出せる■例 nameとage、hobbyが変数。 name = "ジャック" age = 24 hobby = "旅行" print name, "は", age, "歳です。", "趣味は", hobby, "です。\n" …

【Ruby (on Rails)入門メモ#1】文字列表示(print, puts, p)

文字列を表示(出力)する。 ■文字列表示に使われるメソッド ・printメソッド 文字列を出力する。 printメソッドは文字列の最後に改行を入れない。 ・putsメソッド printメソッドは文字列の最後に改行を入れてくれないが、 putsメソッドは文字列の最後に改行…

【Ruby (on Rails)入門メモ#0】Rubyの勉強を始める

2年半ほどObjective-CとSwiftでiPhoneアプリ開発をやってきて、 サーバー側にも手を出したいと思ってました。 iOS9がリリースされるまで3ヶ月ほどある。 ベータ版は出てるが、まだ情報は少ない。 情報が沢山出てきてからのほうが、 勉強の効率がよいので、そ…