コンパイラかく語りき

import { Fun } from 'programming'

RubyonRailsチュートリアル4章

どうも!chuckです。昨日に引き続き、Railsチュートリアルを。

 

4章 Rails風味のRuby

たくさんあるRubyのルールの中でも、Railsに関係あるものを学ぼうという趣旨。

 

f:id:chuck0523:20150617212856p:plain

rubyの組み込み関数であるstylesheet_link_tagについて見ていく。

ここでは4つのRuby文法が出現している。(Ruby組み込み関数、括弧なし関数呼び出し、シンボル、ハッシュ)

 

ヘルパー(=カスタムヘルパー)

自分で作った関数のこと。

 

f:id:chuck0523:20150617213447p:plain

HTMLのtitleの文字列を設定するヘルパー。これを定義することでHTMLがより動的になる。

 

f:id:chuck0523:20150617213547p:plain

 

Railsコンソール

インタラクティブRuby(irb)上にあるため、Rubyコマンドを実行できる。データベースにもアクセスできる。

rails consoleで起動(省略形は$rails c)

 

コメント

Railsではコメントは#(シャープマーク)で表される。

 

文字列

"a" + "b" → ”ab” #連結できる

number = "1st"

"#{number} apple" → "1st apple"  #式展開も可能

 

出力

Rubyでの最もメジャーな出力方法はputs

puts "foo" → ”foo”

putsはnilを返すという副作用を持つ

printは末尾に改行を挿入してくれない。

 

シングルクォーテーションでの文字列

式展開をしてくれない。

 

unless

if(!a)はunless(a)と同等。なにこれ不思議。

 

0はtrue

nilとfalse以外は全てtrueとなる。0がtrueとは…不思議。

 

暗黙の戻り値

中二病心をくすぐられる…。最後に評価された式の値が自動的に返される。

f:id:chuck0523:20150617215822p:plain

つまり上記では、3行目のreturnは不要。

 

module

f:id:chuck0523:20150617215956p:plain

関連したメソッドをまとめて部品化できる。用いる側はincludeをすることでミックスインできる。

ただし、Railsの場合自動でやってくれるので全てのビューで使える。便利!

 

破壊的メソッド

これまた中二心をくすぐられる…。

.lengthや.sortはただの参照。一方で.sort!とすることでソートした内容に書き換えることができる。値を変更してしまうのが破壊的メソッドらしい。

 

範囲

0..9 といった感じ。

f:id:chuck0523:20150617220637p:plain

これ便利だなあ。

 

ハッシュ

データをindex以外で管理できる。もちろん、ハッシュをネストにすることも可能。

要はCで言うところの構造体、JavaScriptで言うところのオブジェクトって感じらしい。

 

 

メソッド分解

いま改めてコードを読み解く。

f:id:chuck0523:20150617221515p:plain

1、メソッド呼び出しで丸括弧は不要

stylesheet_link_tagというメソッドを呼んでいるが、丸括弧は不要。

f:id:chuck0523:20150617221814p:plain

2、ハッシュの波括弧も不要

ただし、最後の引数に指定された時のみ。

f:id:chuck0523:20150617221846p:plain

 

3、改行は無視される

読みやすさのために追加しよう。

 

 

まあ4章はそんな感じ。では!