Próbuję dołączyć login (nazwa użytkownika/hasło) w nagłówku mojego application.html.erb. Dostaję taki błąd:Rails 3 renderowanie częściowe z innego kontrolera (błąd: ActionView :: MissingTemplate)
Missing partial /login with {:handlers=>[:rjs, :builder, :rhtml, :erb, :rxml], :locale=>[:en, :en], :formats=>[:html]} in view paths "/app/views"
Tak się dzieje, gdy robię to wezwanie w moim application.html.erb:
<%= render '/login' %>
'/ login' jest zdefiniowane w moim routes.rb jak:
match '/login' => "sessions#new", :as => "login"
UPDATE: tu jest mój kontroler sesje:
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
Widziałem w innych postach, że może to wynikać z braku zdefiniowania zmiennej w działaniu kontrolera, ale ponieważ jest to sesja i jest ona w application.html.erb (application_controller.rb), nie jestem na pewno, jak to zrobić. Ktoś wie jak to zrobić? Dzięki!
gdzie dokładnie znajduje się twój produkt? I dlaczego przypisujesz ścieżkę tras do swojego renderowania? – prasvin
częściowe jest w views/sessions/new.html.erb. Powodem, dla którego używam "/ login" w moim wywołaniu renderowania jest to, ponieważ uznałem, że spowodowałoby częściowe widoki views/sessions/new.html.erb. – botbot
zobacz zaktualizowaną odpowiedź – prasvin