вот как это должно работать: я захожу в админку, захожу в cars/new и заполняю поля, нажимаю создать и у меня в списке должна быть новая машина. www.autozeep.com
дело в том, что все идет нормально, пока я не нажму кнопку «Создать», чтобы создать новую машину, логи сервера показывают это:
NameError (uncaught throw `warden'):
app/controllers/application_controller.rb:9:in `login_required'
app/middleware/flash_session_cookie_middleware.rb:17:in `call'
в режиме разработки это работает нормально, на сервере в режиме производства - нет, код тот же, ничего не изменилось. дополнительные журналы сервера: http://pastie.org/3028350
application_controller
class ApplicationController < ActionController::Base
protect_from_forgery
# filter
def login_required
return true if authenticated?
warden.authenticate!
end
users_controller: http://pastie.org/3028586
Я могу редактировать автомобиль, он работает нормально, поэтому функции обновления и редактирования из cars_controller в порядке, я проверил новые и создал функции из cars_controller, но я не смог найти ничего, что дало бы мне представление о том, что происходит. Cars_controller: http://pastie.org/3028452
Пожалуйста, помогите, у меня это приложение уже запущено, и клиент ждет, пока эта проблема будет решена. Всем большое спасибо.
ИЗМЕНИТЬ
NameError in CarsController#create
uncaught throw `warden'
Rails.root: /u/apps/zeepauto/releases/20111123173432
Application Trace | Framework Trace | Full Trace
app/controllers/application_controller.rb:9:in `login_required'
app/middleware/flash_session_cookie_middleware.rb:17:in `call'
ENV DUMP
...
....
rack.url_scheme: "http"
rack.version: [1, 0]
warden: Warden::Proxy:-621456458 @config={:default_strategies=>{:_all=>[:database]}, :failure_app=>UsersController, :default_scope=>:default, :scope_defaults=>{}, :intercept_401=>true}
warden.options: {:attempted_path=>"/cars", :action=>"unauthenticated"}
Я получаю эти ошибки только когда добавляю новую машину, я могу редактировать машины, новости, контакты. все, кроме автомобилей.
ПРОБЛЕМА РЕШЕНА
Эта проблема была вызвана какой-то библиотекой jquery, я использую dynamic_form в этой форме, поэтому, когда я выбираю имя автомобиля в следующем поле select_box, отображаются только модели для выбранного автомобиля. Исследуя проблему (с моим учителем, я бы сам об этом не подумал), мы видим, что когда я выбираю автомобиль, в журналах запускается процесс под названием «dynamic_carmodels» для обновления списка моделей автомобилей, а также в этот момент ключ сеанса заменяется другим, обычно, если ключ сеанса изменяется, сеанс, который я начал при входе в систему, больше недействителен, и поэтому я получаю «неаутентифицированную ошибку». До сих пор не знаю, что именно jquery вызывало проблему, но, наконец, я решил эту проблему, это было не из-за конфигурации надзирателя.