«неопределенная локальная переменная или метод» при запуске производственного сервера - PullRequest
0 голосов
/ 27 ноября 2011

Когда я пытаюсь запустить свое приложение на производственном сервере, я получаю сообщение об ошибке:

/users_controller.rb:3: undefined local variable or method `signup_url' for UsersController:Class (NameError)

код, указанный в моем файле users_controller

class UsersController < ApplicationController
  if User.find(:all).empty?
    redirect_to signup_url, :notice => "Please make the first Administrator account."
  else
    before_filter :authorize
    before_filter :office_or_admin_only
  end

в моем маршруте. Rb

match 'signup' => 'users#new', :as => :signup

Все отлично работает в разработке.Это первый раз, когда я запускаю производственный сервер, я создал и обработал производственную базу данных, но я внес изменения в любые файлы в моем приложении.Есть ли какая-то волшебная строка, которую мне нужно поместить в файл конфигурации для запуска производственного режима?Или что-то не так с моим кодом?

Ответы [ 2 ]

1 голос
/ 27 ноября 2011

Не знаю, почему это так, но ... вот в чем проблема.

У меня был рекурсивный цикл, источником которого была строка 3 выше.

Я исправил это так:

class UsersController < ApplicationController
  if User.find(:all).empty?
    before_filter :authorize, :except => [:create, :new]
  else
    before_filter :authorize
    before_filter :office_or_admin_only
  end

application_controller.rb

def authorize
  unless User.find_by_id(session[:user_id])
    if User.find(:all).empty?
      redirect_to signup_url, :notice => "Please make the first Administrator account."
    else
      redirect_to login_url
    end
  end
end

Это делает все перенаправления на URL-адрес sign_up, когда таблица пользователей пуста, но избегаетрекурсивная фильтрация путем добавления исключения к фильтру для методов, вызываемых с помощью URL-адреса sign_up, когда таблица пользователей пуста.

Я понял это, сбросив базу данных в разработке, чтобы сделать условия такими же, как попыткаусловия производства.Сервер запустился просто отлично, но мой браузер сказал мне, что у меня был рекурсивный цикл при переходе на localhost: 3000.

0 голосов
/ 27 ноября 2011

Попробуйте link_to :signup или link_to new_user_path

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