私のapplication.html.erbのヘッダにログイン(ユーザ名/パスワード)を含めることを試みています。私はこのエラーを取得しています:Rails 3が別のコントローラから部分的にレンダリングされました(エラー:ActionView :: MissingTemplate)
:<%= render '/login' %>
「/ログイン」として私のroutes.rbをで定義されています。私は私のapplication.html.erbでこのコールが作るとき
Missing partial /login with {:handlers=>[:rjs, :builder, :rhtml, :erb, :rxml], :locale=>[:en, :en], :formats=>[:html]} in view paths "/app/views"
これが起こっています
match '/login' => "sessions#new", :as => "login"
UPDATE:ここに私のセッションコントローラです:
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
私はこれがコントローラのアクションで変数を定義していないことが原因である可能性がありますが、これはセッションであり、application.html.erb(application_controller.rb)にありますので、これを行う方法を確認してください。誰もこれを行う方法を知っていますか?ありがとう!
あなたの部分は正確に位置していますか?そして、レンダリングで経路パスを割り当てるのはなぜですか? – prasvin
部分はviews/sessions/new.html.erbにあります。私が '/ login'をレンダリングの呼び出しで使用している理由は、views/sessions/new.html.erbの部分をレンダリングすると考えたからです。 – botbot
更新された回答を参照 – prasvin