Estoy escribiendo una aplicación de rieles en el que tengo un editor y un modelo de publicación. Estoy usando un dispositivo para la autenticación de los editores y, dado que un editor no puede hacer nada como invitado, escribí un diseño personalizado para usar en la página de inicio de sesión y quiero que un usuario invitado pueda ver solo la página de inicio de sesión.Diferente '/' ruta raíz para los usuarios, dependiendo si son autenticados (usando idear)
Ahora estoy tratando de alcanzar el siguiente comportamiento en mi aplicación, pero sin éxito:
require 'spec_helper'
require 'capybara/rails'
describe "Authentication" do
describe "when logged in" do
before(:each) do
@editor = Factory(:editor, :password => 'secret')
visit '/'
fill_in 'Login', :with => @editor.login
fill_in 'Password', :with => 'secret'
click_button 'Sign in'
page.should have_content('Signed in successfully.')
end
it "getting/should render publication page with no redirection" do
visit '/'
page.should_not have_content('Login')
page.should have_content('Publications')
# assert that there is no redirection
page.current_path.should == '/'
end
it "visits the sign_in page should redirect to /" do
visit '/editors/sign_in'
page.should have_content('Publications')
page.current_path.should == '/'
end
end
describe "when not logged in" do
it "getting/should not display the sign in warning" do
visit '/'
# I want to get rid of this message
page.should_not have_content('You need to sign in or sign up before continuing.')
end
it "getting/should not redirect to the sign_in default page" do
visit '/'
page.should have_content('Login')
# assert that there is no redirection
page.current_path.should == '/'
end
it "getting the the sign_in default path works" do
visit '/editors/sign_in'
page.should have_content('Login')
page.current_path.should == '/editors/sign_in'
end
it "login works and redirect me to the publications page (with /)" do
@editor = Factory(:editor, :password => 'secret')
visit '/'
fill_in 'Login', :with => @editor.login
fill_in 'Password', :with => 'secret'
click_button 'Sign in'
page.should have_content('Signed in successfully.')
page.current_path.should == '/'
page.should have_content('Publications')
end
end
end
El principal problema es que quiero para deshacerse de 'Tienes que iniciar sesión o registrarse antes de continuar. ' mensaje cuando un usuario invitado visita '/'.
He intentado con sugerencias tomadas de here y here pero sin suerte.
Cualquier sugerencia sobre cómo aplicar esto con legado?
Gracias.
Parece que podría hacer para crear un espacio de nombres ... ¿Ha considerado esto? –
¿Qué quieres decir? ¿Podrías explicar? Gracias. – Fabio