Rails_Tutrial04
4章から難しくなってきました。
4.1.2 カスタムヘルパー
ヘルパーも、progateには出てきてないですね。
そして、yieldの意味がよくわかっていない。
<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章は、手を動かさない内容なので、書籍で再確認した方が効率が良さそう。