redirect_to admin_url rails создает неопределенную локальную переменную или метод admin_path для # <SessionsController: 0x75969f356028> - PullRequest
1 голос
/ 31 января 2012

У меня очень простое приложение, в котором есть логика входа в rails. Это было взято из примера депо, приведенного в книге «Прагматичные программисты - Agile веб-разработка с рельсами». У меня есть контроллер сеанса, который выглядит следующим образом:

 class SessionsController < ApplicationController
  skip_before_filter :authorize
  def new
  end

  def create
    if user = User.authenticate(params[:name], params[:password])
      session[:user_id] = user.id
      redirect_to admin_url
    else
      redirect_to login_url, :alert => "Invalid user/password combination"
    end
  end

  def destroy
    session[:user_id] = nil
    redirect_to store_url, :notice => "Logged out"
  end

end

Когда я ввожу информацию для входа на веб-сайт, я получаю следующую ошибку: неопределенная локальная переменная или метод admin_url для #

При вводе неверных кредитов меня правильно перенаправляют на страницу login_url. Мой административный вид (app / views / admin / index.html.erb) выглядит так:

<h1>Welcome</h1>

It's <%= Time.now %>
We have <%= pluralize(@total_orders, "lab") %>.

Любая помощь очень ценится.

Ответы [ 2 ]

3 голосов
/ 01 февраля 2012

Переменная admin_url создается Rails, если у вас есть маршрут с именем admin (с параметром :as => в routes.rb или с resources). Используйте rake routes для проверки ваших маршрутов: название маршрута (если существует) находится в первом столбце. Конечно, ваша проблема в том, что этот маршрут не существует.

1 голос
/ 31 июля 2012

Просто добавьте get 'admin' => 'admin#index' в ваши маршруты.rb

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...