心はいつも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
いまだにユビキタスなSONYとクラウドに向かうApple

PS3のトルネが良さそう@ヤマダ電機。PS3本体とチューナーの2台になってスッキ …

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

9.2.3フレンドリーフォワーディング、です。 ログオンしていないユーザーが編集 …

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

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

Objective-C苦節3ヶ月アプリ作れるようになった

このブログairpucci.comのメニューにアプリ開発追加しました。 昨年秋よ …

文字化けもするし、、

自作テンプレ作ったはいいですが、問題が、、。 関連しそうな記事 iTunesをM …

no image
RailsTutorial4.0を高速で復習する。5.6章。演習3問目。

5章最後の演習、3問目です。 リスト5.38に示すように、元のヘルパーメソッドに …

no image
MacBookAirで真央ちゃんのテレビ放映を見ました

テレビ持っていないを公言しています。 15年以上使っていたナショナル6型ブラウン …

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

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

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

3.3.3埋め込みRubyです。viewにrubyコードを埋め込んでtitleを …

no image
RubyとRailsのお作法

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