読者です 読者をやめる 読者になる 読者になる

ぞえの技術めも

Ruby on Rails勉強中

【36日目】【1日20分のRailsチュートリアル】【第5章】Cotactページの作成とリンクの追加

Ruby on Railsチュートリアル(第3版)

今日は「5.3.1 Contactページ」から。

5.3.1 Contactページ

まずContactページのテストを追加する。
第3章の演習で追加してたのでさくっと追加します。

test/controllers/static_pages_controller_test.rb

  test "should get contact" do
    get :contact
    assert_response :success
    assert_select "title", "Contact | Ruby on Rails Tutorial Sample App"
  end

こまめにテスト実行がめんどくさいので自動でテストしてくれるようにしておく。

$ bundle exec guard

Cotactページのルート追加して

config/routes.rb get 'static_pages/contact'

アクション追加して

```app/controllers/static_pages_controller.rb```

def contact end

ビューを追加する。

$ touch app/views/static_pages/contact.html.erb

```app/views/static_pages/contact.html.erb```

<% provide(:title, 'Contact') %>

Contact

Contact the Ruby on Rails Tutorial about the sample app at the contact page.

これでテストが通るようになりました。

## 5.3.2 Railsのルート

> 本項では、名前付きルートをサンプルアプリケーションの静的ページで使うために、ルーティング用のファイル (config/routes.rb) を編集していきます。

名前を定義することで他からその名前で使える、ってことなのかな…?

ルーティングファイルに下記を追加。

```config/routes.rb```

root 'static_pages#home' get 'help' => 'static_pages#help' get 'about' => 'static_pages#about' get 'contact' => 'static_pages#contact'

## 5.3.3 名前付きルート

さっきの対応により*名前付きルート*が使えるようになったそう。

リンク先を```#```にしていたところに名前付きルートで正式なリンクを貼っていく。

まずはヘッダー。

```app/views/layouts/_header.html.erb```
<%= link_to "sample app", root_path, id: "logo" %>
:
    <li><%= link_to "Home",   root_path %></li>
    <li><%= link_to "Help",   help_path %></li>
次はフッター。

```app/views/layouts/_footer.html.erb```
  <li><%= link_to "About",   about_path %></li>
  <li><%= link_to "Contact", contact_path %></li>
これで一通りリンク貼れました。
今日の作業時間は**【26分】**。

次は「5.3.4 リンクのテスト」から。