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

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

RailsTutorial4.0を高速で復習する。8.1.3章。

   


8.1.3サインインのフォーム、です。

ログイン画面を作る

入力フォームをform_forヘルパーを使って作ります。
form_for(@user)と書いた時は、

フォームのactionは/usersというURLへのPOSTであると自動的に判定しますが、セッションの場合はリソースの名前とそれに対応するURLを指定する必要があります。

だそうです。
form_for(:session, url: sessions_path)
お約束ごとなので覚える。

リスト8.7 サインインフォームのコード。
app/views/sessions/new.html.erb

<% provide(:title, "Sign in") %>
<h1>Sign in</h1>

<div class="row">
  <div class="span6 offset3">
    <%= form_for(:session, url: sessions_path) do |f| %>

      <%= f.label :email %>
      <%= f.text_field :email %>

      <%= f.label :password %>
      <%= f.password_field :password %>

      <%= f.submit "Sign in", class: "btn btn-large btn-primary" %>
    <% end %>

    <p>New user? <%= link_to "Sign up now!", signup_path %></p>
  </div>
</div>

8.1.4確認フォームを送信する、です。

何も入力せず
http://localhost:3000/signin
にアクセスしsigninのデバッグ情報を見ています。
params[:session]の中身が
{ session: { password: “”, email: “” } }であることがわかります。
入力されたemailは、params[:session][:email]と表現でき、
入力されたパスワードは、params[:session][:password]と表現できます。

8.1.5フラッシュメッセージを表示する、です。

フラッシュメッセージ

もっと他のやり方があったような気がしますがRailsTutorialでのフラッシュメッセージはとってもシンプル。

フラッシュメッセージを表示したい場面で
flash[:flashmesssage] = “表示したいメッセージ”とし、

表示したい画面で
<% if flash[:flashmesssage] %>

<%= flash[:flashmesssage] %>

<% end %>
とする。
flash自体がRailsのメソッド。
flash.nowと書くと、現在のアクションのみ有効となる。(renderで別アクションに飛んだときは消える)

8.2、サインイン成功、です。

コントローラーにアクションを書く

viewができたので、newの後、createするアクションを書きます。
リスト8.13 Sessionsコントローラのcreateアクションが完成したところ (まだ動きません)。
app/controllers/sessions_controller.rb

class SessionsController < ApplicationController
略
  def create
    user = User.find_by(email: params[:session][:email].downcase)
    if user && user.authenticate(params[:session][:password])
      sign_in user
      redirect_to user
    else
      flash.now[:error] = 'Invalid email/password combination'
      render 'new'
    end
  end

次は、
8.2.1[このアカウント設定を保存する]
です。
Session永続化します。

 - テクニカル ,

Message

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

  関連記事

no image
RailsGirlsMore!でRailsTutorialのキモチワルイところがスッキリしました

RailsGirls松江からのぉ〜東京More!*既に2回目から1ヶ月半。またま …

no image
RubyとRailsのお作法

コーディングスタイルって結構気になります。 最初につとめた会社で、プログラミング …

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

3.6高度なセットアップ、です。 この節を飛ばしても次の章以降には何の影響もあり …

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

6.3.3ユーザー認証、です。 新規ユーザー登録のときは入力で、:passwor …

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

第6章ユーザーのモデルを作成する。です。ここから開発っぽくなってきます。って今ま …

no image
RailsTutorial4.0を高速で復習する。3.5章。最後の問題。

3.5演習、3もんめ、最後の問題です。 3.(上級者向け)「Heroku pag …

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

6.3セキュアなパスワードを追加する、です。 パスワードはセキュアであるべきと思 …

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

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

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

7.3ユーザー登録失敗、です。 ここでは、エラーメッセージの表示を実装します。 …

RailsGirls松江からのぉ〜東京More!*既に2回目

RailsGirls東京3回目に申し込みそびれた流れから松江に参加し、チューター …