Rails 3 визуализирует частично из другого контроллера (ошибка: ActionView :: MissingTemplate) - PullRequest
5 голосов
/ 16 февраля 2012

Я пытаюсь включить логин (имя пользователя / пароль) в заголовок моего application.html.erb.Я получаю эту ошибку:

Missing partial /login with {:handlers=>[:rjs, :builder, :rhtml, :erb, :rxml], :locale=>[:en, :en], :formats=>[:html]} in view paths "/app/views"

Это происходит, когда я делаю этот вызов в моем application.html.erb:

<%= render '/login' %>

'/ login' определено в моих маршрутах.рб как:

match '/login' => "sessions#new", :as => "login" 

ОБНОВЛЕНИЕ: вот мой контроллер сессий:

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), я не уверен, как это сделать.Кто-нибудь знает, как это сделать?Спасибо!

Ответы [ 2 ]

9 голосов
/ 16 февраля 2012

<%= render "sessions/login", :@user => User.new %>

отобразит вход в систему частично в виде сеансов, то есть '_login.html.erb' в представлениях / сеансах, и создаст экземпляр @user для нового пользователя, чтобы на него можно было напрямую ссылаться вкак:

form_for @user, :url => sessions_path do |f| 
  f.text_field :email
0 голосов
/ 21 апреля 2015

Проверьте расширение вашего файла в моем случае расширение файла rhtml , я изменил его на html.erb .

Теперь оно работает нормально.

Примечание:

Этот файл с расширением rhtml отлично работал в rails <= 3.0.10 </strong>.Но перестал работать на рельсах 3.1.12 .Поэтому я изменил его расширение, как указано выше.

...