Я использую 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 для пользователя.
Есть ли способ обойти все это?