Разработка: неопределенный метод `user_signed_in? 'для ApplicationController: класс - PullRequest
2 голосов
/ 14 октября 2011

Я получаю вышеуказанную ошибку с Rails 3.1.1 и Ruby 1.9.2. Я провел последний час в поисках, и вот что я нашел:

  1. clear_helpers в ApplicationController может привести к тому, что помощники не будут загружаться. Мой код не использует это, и я не верю, что камни, которые я установил, тоже.

  2. Отсутствует devise_for в маршрутах. У меня есть devise_for :users

  3. Отсутствует «database_authenticatable» в моей модели пользователей. Я имею в своем users.rb:

    devise: database_authenticatable,: registerable, : извлекаемый,: запоминаемый,: отслеживаемый,: проверяемый

  4. Мое поведение в точности соответствует тому, что описано в этой теме электронной почты , за исключением signed_in? :user, у меня тоже не работает. Однако Devise.mappings показывает отображение пользователя.

Есть идеи, что может быть не так? Даже хак для current_user очень мне поможет, так как мне нужно, чтобы некоторые функции работали как можно скорее.

Ответы [ 2 ]

1 голос
/ 14 октября 2011

Так что я отмечаю это как вики сообщества, поскольку решение тривиально.

Я вызывал отладчик (который я проверял current_user со следующим кодом

class ApplicationController < ActionController::Base
  protect_from_forgery
  debugger
  filter {|c| Authorization.current_user = c.current_user}
end

Rails делает объекты сеанса и запроса доступными для экземпляров контроллеров. Этот отладчик вызывается в контексте self == ApplicationController, когда он должен быть self == #<MainController...>.

Короче говоря, убедитесь, что вы не пытаетесь вызвать его внутри контроллера определение , но внутри контроллера экземпляр .

1 голос
/ 14 октября 2011

Номер 3 кажется мне странным. Файл вашей модели называется users.rb? Ваше объявление класса Users < ActiveRecord::Base? Если это так, измените их на следующие.

users.rb => user.rb

User < ActiveRecord::Base

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