devise: не могу войти, если у меня есть пользовательский контроллер с методом show - PullRequest
1 голос
/ 09 февраля 2011

Я использую Devise для проекта Rails 3 и пытаюсь сделать все это с BDD, используя Cucumber и Rspec.

Проблема в том, что когда я захожу в систему по сценарию с огурцом, вот так:

  Scenario: Login
    Given I am not authenticated
    And I am on the home page
    And I have a user with username "jsmith"
    When I follow "Log in"
    And I fill in "Username" with "jsmith"
    And I fill in "Password" with "password"
    And I press "Sign in"
    Then I should be on the home page
    And I should see "Logged in successfully."
    And I should see "Log out"

Я сталкиваюсь с проблемой, когда у меня в маршрутах есть следующее.rb

  match 'home' => "home#index"

  devise_for :users,
  :path_names => { :sign_in => 'login', :sign_out => 'logout'}

  devise_scope :user do
    get '/login' => 'devise/sessions#create'
    get '/logout' => 'devise/sessions#destroy'
  end

  resources :users

Проблема в том, что я не вижу "Успешно вошел в систему". Однако, если я изменю строку в моем rout.rb на

resources :users, :except => [:show]

Тогда все работает нормально, но у меня не может быть метода show для пользователя.

Есть ли способ обойти все это?

1 Ответ

0 голосов
/ 09 февраля 2011

Проблема в том, что вы не видите "залогинен успешно" или вы не авторизованы? Я думаю, что устройство перенаправляет на вашего пользователя, если он не находит, он переходит на другую страницу ... индекс? - есть ли у вас тег уведомления и фрагмент на странице показа (это должно быть в макете)?

EDIT

Вы должны проверить, есть ли у вас значение сеанса в вашем шоу, выполнить этот пункт <%= session.to_yaml %> в вашем шоу, если вы не видите строку «Вход в систему», я думаю, что она была удалена, возможно, потому вы были перенаправлены.

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