むじんブログ ”3歩進んで2歩下がる”

37歳未経験からのエンジニア転職を目指す営業部長

学習のアウトプット【Rubyドリル・その他基礎】

TECH CAMPにはRubyドリルという基礎問題集があり、

今日は2問解いた中で学んだことをまとめ。

 

Rubyドリル29】

特定の倍数の時に表記を変更するRuby問題。(Fizz_Buzz問題として有名?らしい)

while文・剰余演算子の使い方を学んだ。

 

 

・15の倍数はnum % 15 ==0でもOK。

・()はなくてもOK。

・if文は上から処理されるので、例えば1番目のelsifの行で

「3の倍数」かつ「5の倍数でない」の「5の倍数でない」の部分は不要になる。

 

Rubyドリル32】

クラスメソッドとインスタンスメソッドの判別について。

 

・クラスメソッド

メソッド名の頭にself.をつける。

クラスだけが用いることのできるメソッドで、インスタンスが用いることはできない。

クラスで共通した振る舞いを定義する。

 

class Car

  def self.run

    puts “走る”

  end

 

  def ○○(これはインスタンスメソッド)

  end

end

 

【resourcesメソッド】

少し理解が曖昧になっていたので整理。

 

resourcesメソッドは引数に:tweetsのような指定をする。

上記の場合/tweetsのパスに対応するルーティングが作られる。

 

resources :tweetsという記述で、下記の7つのルーティングが作られる。

(この際、HTTPメソッドは各アクションに対応したものが割り振られるので、わざわざ記述しなくて良い)

 


1 2 3 4 5 6 7 8
GET          /tweets(.:format)                   tweets#index
POST         /tweets(.:format)                   tweets#create
GET          /tweets/new(.:format)               tweets#new
GET          /tweets/:id/edit(.:format)          tweets#edit
GET          /tweets/:id(.:format)               tweets#show
PATCH        /tweets/:id(.:format)               tweets#update
PUT          /tweets/:id(.:format)               tweets#update
DELETE       /tweets/:id(.:format)               tweets#destroy 

resourcesを使わない場合は、下記のような記述を全てに行う必要がある。

get 'posts', to:'posts#index'
get 'posts/new', to:'posts#new'
post 'posts', to: 'posts#create'