アラフォーからのプログラミングとデザイン

大人から始めたプログラミングとデザインについてのあれこれ

Railsチュートリアル復習中:埋め込みRuby

f:id:simpledancer:20171210200218p:plain

出張から帰ってきました。(新幹線の中では睡魔に負けてしまった!)

洗濯物を一通り済ませ、今日も勉強を続けます。

家だと寝てしまいそうなので近所のカフェでコードをぽちぽちしてたのだけれど今日は異様に眠いです。

どうやら運動はしてないけど移動って心身が変に疲れます。。

あくびが止まらん。。

今日はRailsチュートリアルで埋め込みRubyの所をやってます。

埋め込みRuby

コードの重複はRubyのDon't Repeat yourself の概念に反します。

別々のファイル内に重複するコードを一括で取り除きます。

まずRailsチュートリアルの流れに沿ってやっていきます。

Railsのprovideメソッドを使ってタイトルをページごとに変更します。 

<% provide(:title, "Home") %> 

 上のコードでは「<% ... %>」という記法が使われており、その中からRailsのprovideメソッドを呼び出しています。メソッドの引数では、"Home"という文字列と:titleというラベルを関連付けています。

そしてタイトルの部分では、上の記法と連携する「<%= ... %>」というよく似た記法を使い、その中でRubyのyieldメソッドを呼び出しています。このメソッドによって、テンプレートのその部分に実際のタイトルが挿入されます。

<title><%= yield(:title) %> | Ruby on Rails Tutorial Sample App</title>

 

 

2つのERBの違い

<%.....%>と書くと中のコードを実行するが出力されない。

<%= ......%>と等号を書くとテンプレートの部分に実行結果が表示される。

 

この2つのコードを前に作ったabout,help,homeページのhtml.erbのファイルに書きます。

今日は睡魔がやばいので一旦ここで止めます!

参考

www.rubylife.jp

www.sejuku.net