人生は短く、睡眠は長い

8時間寝ないとキツい

Rails_Tutrial04

4章から難しくなってきました。

 

4.1.2 カスタムヘルパー

ヘルパーも、progateには出てきてないですね。

 

そして、yieldの意味がよくわかっていない。

qiita.com

<title><%= full_title(yield(:title)) %></title> 

 この書き方は、titleにだけyieldを適用させるものであった。

 

memo:

空欄でなければoutputする

puts "The string '#{string}' is nonempty." unless string.empty?  

 

 

""がデフォルト値

def string_message(str = '') 

 

4.2.5

これで、title helperを理解できるらしい。

本当かよ。

 

モジュールは、関連したメソッドをまとめる方法の1つで、includeメソッドを使ってモジュールを読み込むことができます (ミックスイン (mixed in) とも呼びます)。単なるRubyのコードを書くのであれば、モジュールを作成するたびに明示的に読み込んで使うのが普通ですが、Railsでは自動的にヘルパーモジュールを読み込んでくれるので、include行をわざわざ書く必要がありません。 

 Rubyの理解が甘くてもRailsなんとなく書けてしまう問題。

 

splitメソッド,使うでしょうね。

 

他のメソッド例

>> a
=> [42, 8, 17]
>> a.empty?
=> false
>> a.include?(42)
=> true
>> a.sort
=> [8, 17, 42]
>> a.reverse
=> [17, 8, 42]
>> a.shuffle
=> [17, 42, 8]
>> a
=> [42, 8, 17]

 

メソッドは暗記せずに、辞書的に確認しながら利用すれば良さそう。

 

4.3.2 ブロック

progateで一切出てきていない。

というか、progateってやっぱり超初心者向けなんだな。

(1..5).each { |i| puts 2 * i }

 eachメソッドでそれぞれの数値に対して実行する内容が、

{}内に書かれている。これがブロック。

||で囲まれたiがローカル変数。

 

長いものにはdoで、1行なら{}で書く。

 

4.3.3 ハッシュとシンボル

ハッシュは連想配列

シンボルは:nameとかそういうやつ。

 

 

4.3.4

丸括弧は不要。

 

4.4.3 組み込みクラスにメソッドを追加

そんなことはしたくありませんが、一応読んでおく。

 

4.4.4.コントローラクラス

 

実は、Railsは確かにRuby書かれていますが、既にRubyとは別物なのです。Railsのクラスは、普通のRubyオブジェクトと同様に振る舞うものもありますが、多くのクラスにはRailsの魔法の粉が振りかけられています。Rails独特であり、Rubyとは切り離して学習する必要があります。

 何言ってんだ。

 

4.4.5 ユーザークラス

getterとsetterが全く理解できなかったことを思い出して、鬱病になりました。

 

4章は、手を動かさない内容なので、書籍で再確認した方が効率が良さそう。