課題4を通じてMVCの流れを振り返る。

1 ルートへのアクセス

1-1ルーティングが反応

root to: 'static_pages#top'

1-2コントローラが反応(static_pages_controller.rb)

class StaticPagesController < ApplicationController
  def top; end
end

rootはGETリクエストしか渡せない。GETだと該当のビューが出る

1-3該当ビューのapplication.html.erb(今回はレイアウトのところ)

<% if logged_in? %>
     <%= render 'shared/header' %>
   <% else %>
     <%= render 'shared/before_login_header' %>
   <% end %>
   <%= yield %>
   <%= render 'shared/footer' %>
<% end %>

2 ログインボタンを押す。

ヘッダーのログインボタンを押すと 2-1 _before_login_header_html.erb

<%= link_to 'ログイン', login_path, class: 'nav-link' %>

login_pathへ行く。link_toはmethod何も指定しなければgetで指定になる。

2-2ルーティング

get '/login', to: 'user_sessions#new'

上記が対応する。

2-3 ビューのuser_sessions/new.html.erb

<%= form_with url: login_path,  local: true do |f| %>
        <div class="form-group">
          <%= f.label :email %>
          <%= f.text_field :email, class: 'form-control' %>
        </div>
        <div class="form-group">
          <%= f.label :password %>
          <%= f.password_field :password, class:  'form-control' %>
        </div>
        <div class="actions">
          <%= f.submit "ログイン", class: "btn btn-primary" %>
        </div>
       <% end %>
      <div class='text-center'>
        <%= link_to '登録ページへ',new_user_path %>
        <a href='#'>パスワードをお忘れの方はこちら</a>
      </div>