0

RailsCasts を実際に持っている、または実際に見ている方、およびこれら 2 つのビデオを実際に見た方: http://railscasts.com/episodes/250-authentication-from-scratch?view=comments http: //railscasts.com/episodes/250-authentication-from-scratch-revised

どちらの場合も、彼が行うすべてのログイン ブランク テストで、Ryan Bates は login validation_presence エラーが発生したときに /sessions/new から /sessions にリダイレクトされるという事実を気にしていないようです。これは私を悩ませました、そして私はこれに対する解決策を見つけるのにまだ大きな問題を抱えていますか? かなり単純な気がしますが、目に見える場所に隠されているだけで、私には見えません。

*これは基本的に RYAN BATESのコードです: *彼にはエラーがあります - 私にはエラーがあります.: アイデア???

ユーザーモデル:

has_secure_password

attr_accessible :email, :password, :password_confirmation

validates_uniqueness_of :email

セッションコントローラー:

def new
end

def create
  user = User.find_by_email(params[:email])
  if user && user.authenticate(params[:password])
    session[:user_id] = user.id
    redirect_to root_url, notice: "Logged in!"
  else
    flash.now.alert = "Email or password is invalid"
    render "new"
  end
end

def destroy
  session[:user_id] = nil
  redirect_to root_url, notice: "Logged out!"
end

セッションログインページ:

<h1>Log In</h1>

<%= form_tag sessions_path do %>
  <div class="field">
    <%= label_tag :email %><br />
    <%= text_field_tag :email, params[:email] %>
  </div>
  <div class="field">
    <%= label_tag :password %><br />
    <%= password_field_tag :password %>
  </div>
  <div class="actions"><%= submit_tag "Log In" %></div>
<% end %>
4

1 に答える 1

1

私はプロを持っていないので、エピソードを見ることができません... /sessions にリダイレクトされていると言うのはなぜですか? ログファイルは実際にそれを行っていると言っていますか?

覚えておいてください...そのフォームを送信すると、/sessions に POST されます。そのため、アドレス バーに「/sessions」と表示されますが、そこにリダイレクトされませんそのフォームの送信が失敗するとrender :action => 'new'、現在の「/sessions」の URL に送信されます。しかし、あなたはまだリダイレクトしていません....

于 2013-01-26T23:23:35.903 に答える