在不改变链接的情况下渲染错误 - Ryan Bates - RAILS

时间:2013-01-26 23:18:27

标签: ruby-on-rails ruby-on-rails-3 validation railscasts

对于那些真正拥有或正在观看RailsCasts的人,以及那些真正看过这两个视频的人: http://railscasts.com/episodes/250-authentication-from-scratch?view=comments http://railscasts.com/episodes/250-authentication-from-scratch-revised

你会注意到,在他们这两个登录空白测试中,Ryan Bates似乎并不担心登录validation_presence错误后,他会从/ sessions / new重定向到/ sessions。这让我感到困扰,我仍然无法找到解决方案吗?我觉得这很简单,但我猜它只隐藏在某个地方可见,但不是我。

* 这是基本的RYAN BATES代码: *他有错误 - 我有错误:IDEAS ???

用户模特:

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 %>

1 个答案:

答案 0 :(得分:1)

我没有亲,所以无法观看这一集...为什么你说你被重定向到/会话?日志文件实际上是说它正在这样做吗?

请记住......当您提交该表单时,它将发送到/ sessions。因此,您将在地址栏中看到“/ sessions”,但您没有被重定向到那里。当表单提交失败时,它会转到render :action => 'new' - 当前的“/ sessions”网址。但是你还没有重定向......