心はいつもAirPucci (空元気でもいいから)

毎日がPucciを着ているような気分

RailsTutorial4.0を高速で復習する。4章と4.1章。

   


さて、4章です。4章ではRubyに関する内容が多かったような記憶が。

動的なWebアプリを作ることができればそれでよいというのであれば、まずRailsを学ぶようにし、Rubyについては当分の間、必要が生じた場合にのみ学習することをお勧めします

私は今、Railsもいいけどやっぱ書くならRubyをキチンとやらないと、という段階に来たので、
を読みながら、もう少し詳しく網羅的に知りたい時は

4.1動機、です。
viewのレイアウトに書いた
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
を例に、Railsの組み込み関数に関する説明です。

Railsの組み込み関数を調べる

http://api.rubyonrails.org/によると、stylesheet_link_tagはRailsの組み込み関数ですね。これはviewに書いてあるからRailsの関数ってわかりやすいけど、modelとかcontrollerに書いてあるとRubyなのかRailsなのかわかんなくなります。いっこいっこ調べて覚えて行くしかないみたい。
http://railsdoc.com/ここは日本語かされているからこっちがいいかも。でもstylesheet_link_tagはありませんでした。

stylesheet_link_tag(*sources) Link

Returns a stylesheet link tag for the sources specified as arguments. If you don’t specify an extension, .css will be appended automatically. You can modify the link attributes by passing a hash as the last argument. For historical reasons, the ‘media’ attribute will always be present and defaults to “screen”, so you must explicitly set it to “all” for the stylesheet(s) to apply to all media types.

<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>

<link data-turbolinks-track=”true” href=”/assets/application.css?body=1″ media=”all” rel=”stylesheet” />
になっていました。

ヘルパーメソッドを自分で作成する

viewで使える組み込み関数をヘルパーメソッドと言うのですが、ここでいきなり自作します。

リスト4.2 full_titleヘルパーを定義する。
app/helpers/application_helper.rb このファイルはあるので、中身に自作ヘルパーメソッドを書いて行きます。

module ApplicationHelper

  # ページごとの完全なタイトルを返します。
  def full_title(page_title)
    base_title = "Ruby on Rails Tutorial Sample App"
    if page_title.empty?
      base_title
    else
      "#{base_title} | #{page_title}"
    end
  end
end

ヘルパーメソッドはmoduleなんですね。
base_titleを”Ruby on Rails Tutorial Sample App”と定義し、page_titleは入力でもらう事にし、あれば|の続きに表示する、というヘルパーメソッドです。

自作ヘルパーメソッドを使ってレイアウト書き換え

リスト4.3 サンプルアプリケーションのWebサイトのレイアウト。
app/views/layouts/application.html.erb

<!DOCTYPE html>
<html>
  <head>
    <title><%= full_title(yield(:title)) %></title>
以下略

titleを自作ヘルパーメソッドfull_titleを使って書き換えました。

yeildが気になる

yeildは3.3.3章で出てきたのですが、ここで急にきになったので調べます。が、あまり説明がありません。
yeild

コントローラで処理された内容を埋め込む先(yield)

この文章わかりづらい。
コントローラーで、処理された内容を埋め込むけど、その埋め込み先
ってことでしょうか。
yield(:title)は3.3.3章でprovide関数を使って、各静的ページのページ名を:titleに割り当ててあります。その処理を、コントローラーがviewを呼び出すときに埋め込んでしまう、ってことでしょうか。
http://localhost:3000/static_pages/home が読み込まれたとき、contorollerはhomeのviewを呼び出すけどその時に、レイアウトのyield(:title)には、homeのviewでprovide(:title, ‘Home’)してあったのでyield(:title)をHomeに置き換えるってことですね。

そういうことだと想像してつぎ、進みます。

次は4.1章の途中から、
リスト4.4 Homeページのタイトル確認用にテストを更新する。からです。

ここは変だなと思っているところなんですよ。

 - テクニカル ,

Comment

  1. […] 4.1章のヘルパーメソッドを自分で作成するで、ヘルパーメソッドはmoduleだったことに気づいたのですが、 […]

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  関連記事

no image
ブログデザイン変更しました

予告通り、本日中にブログのデザインを変更できました。WordPressのテーマT …

Mac miniのメモリを自力で16Gに増設しました

Mac miniとDellの27インチIPS液晶、とても快適です。もっと快適にす …

no image
RailsTutorial4.0を高速で復習する。3.5章。つづき。

3.5演習の2もんめをやります。 2.お気付きの方もいると思いますが、リスト3. …

ラクダと蛇(キャメルとスネーク、Camel&Snake)

蛇。 いきなりラクダと蛇ってなんぞやー!と思う人と、あ、それかと思う人。後者はプ …

no image
Macで.htaccessを表示する設定

MacBook Air2代目。以前は行っていた.(ドット)がついたファイルをMa …

no image
RailsTutorial4.0を高速で復習する。終わりました。

作りたいサービスがあってコーディング開始していたのですが、もう1回振り返り学習し …

no image
RailsTutorial4.0を高速で復習する。9.4.2章。

9.4.2 destroyアクション、です。 テストを書く FactoryGir …

no image
RailsTutorial4.0を高速で復習する。9.2.2章。

9.2.2正しいユーザーを要求する、です。 テストを書く 自分以外の人がプロフィ …

no image
ヘルパーメソッドを自作する

便利なrailsのヘルパーメソッド。自分でも作れます。 作るときは、 アプリのd …

no image
プログラミングから離れた理由を思い出した

私は転職が多く5社で正社員で経験しています。全部IT系なのだけど全部職種が違いま …