課題4を通じてMVCの流れを振り返る。
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-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>