bot*_*bot 5 session routes login partials ruby-on-rails-3
我正在尝试在application.html.erb的标题中包含登录名(用户名/密码).我收到此错误:
Missing partial /login with {:handlers=>[:rjs, :builder, :rhtml, :erb, :rxml], :locale=>[:en, :en], :formats=>[:html]} in view paths "/app/views"
Run Code Online (Sandbox Code Playgroud)
当我在application.html.erb中进行此调用时,会发生这种情况:
<%= render '/login' %>
Run Code Online (Sandbox Code Playgroud)
'/ login'在我的routes.rb中定义为:
match '/login' => "sessions#new", :as => "login"
Run Code Online (Sandbox Code Playgroud)
更新:这是我的会话控制器:
class SessionsController < ApplicationController
def create
if user = User.authenticate(params[:email], params[:password])
session[:user_id] = user.id
user.last_login = Time.now
user.save
redirect_to root_path, :notice => "login successful"
else
flash.now[:alert] = "invalid login / password combination " # don't show pass + params[:password]
#render :action => "new"
redirect_to login_path, :notice => "wrong user pass"
end
end
def destroy
reset_session
redirect_to root_path, :notice => "successfully logged out"
end
end
Run Code Online (Sandbox Code Playgroud)
我在其他帖子中看到,这可能是由于未在控制器操作中定义变量,但由于这是一个会话,而且它位于application.html.erb(application_controller.rb)中,我不知道如何去做这个.有人知道怎么做吗?谢谢!
<%= render "sessions/login", :@user => User.new %>
将呈现登录部分会话视图,即视图/会话中的"_login.html.erb"并实例化为@user新用户,以便可以在部分中直接引用它:
form_for @user, :url => sessions_path do |f|
f.text_field :email
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7184 次 |
| 最近记录: |