Rails Girl – Rails for Newbies

Ruby on Rails for Newbies

Criando uma Tela de Login julho 29, 2008

Filed under: Restful Authentication — amandavarella @ 1:32 am

Atenção: eu fiz isso com rails 2.1, não sei como funciona com as versões anteriores.

Depois de brigar um dia inteiro (e ao final do dia perceber que não precisava nada disso…) consegui criar uma interface de login, que como vocês verão aqui é muito simples.
Eu sabia que existia uma gem, ou um plugin sei lá.. que já gerava as interfaces para cadastro de usuário, login no sistema e talz.. mas eu não sabia qual era, e fiquei inutilmente o dia inteiro tentando tentar um plugin com um nome bastante sugestivo “login_generator”. Depois de muito pesquisar e bater cabeça, cheguei finalmente ao “restful_authentication” o plugin de nome nada sugestivo para a criação das nossas interfaces de acesso de usuário.
Para começarmos precisamos de um projeto, se vc ainda não o tem, para criá-lo digite:

rails meuprojeto

Com o seu projeto criado, vc deverá então instalar este plugin, com os seguintes comandos:

script/plugin source http://svn.techno-weenie.net/projects/plugins/
script/plugin install restful_authentication

Em seguida, gere os seus controles da seguinte maneira:

script/generate authenticated user sessions

MUITA CALMA NESSA HORA! REPARE, RESPEITE O SINGULAR E O PLURAL!!! user (no singular) sessions (no plural), gerará dois controllers um “users”e outro “sessions”. No tutorial que eu estava lendo estava errado! E eu perdi mais um tempo com isso… bem, eu ainda não entendi muito bem essa coisa de singular e plural do rails não, mas segundo o carinha de um mini-curso que eu assisti, isto é normal e a gente se acostuma com o tempo

Altere o seu arquivo routes.rb (dentro do diretório config) para que ele fique assim:

ActionController::Routing::Routes.draw do |map|
  map.resources :users
  map.resource :session, :controller => :sessions
  map.signup '/signup', :controller => 'users', :action => 'new'
  map.login  '/login', :controller => 'sessions', :action => 'new'
  map.logout '/logout', :controller => 'sessions', :action => 'destroy'  
end

Cuidado que no final do arquivo vem por default uns map.connect, tira essas linhas e deixa o arquivo como está mostrado acima.
Agora vamos criar a tabela de usuários com

rake db:migrate

Se o servidor estiver rodando, acesse a aplicação http://localhost:3000/signup.
Tente cadastrar os dados e Voilá! Vc tem uma tela de cadastro de usuários (após o cadastro, ele vai para a tela principal do rails, depois vc terá que configurar para onde vc quer que após o login do usuário o sistema vá)
Teste também http://localhost:3000/login, informando os dados do usuário que vc cadastrou para testar se está funcionando.

Anúncios
 

9 Responses to “Criando uma Tela de Login”

  1. Abraão Coelho Says:

    Amanda,

    o nome faz sentido sim!!! do plugin! =) é um sistema de autenticação que é RESTful! claro, quando eu comecei a procurar obviamente fui atrás de “login” primeiro, mas logo me indicaram esse que é realmente muito bom…

    bacana seu blog aqui… tem tempos que tô querendo começar um nesse estilo mas nada até hoje ^^”

  2. Hum
    Legal isso ai Amanda
    Otima dica para quem está começando.
    Parabéns pelo Blog
    Precisamos de mais Girls assim no Rails

    Abraços

  3. José Says:

    Muito bacana,

    Fiz tudo aqui sem complicações. Parabéns

  4. Mateus Manosso Barszcz Says:

    Olá Amanda,

    Muito legal o post.

    Tirando sua dúvida => “No tutorial que eu estava lendo estava errado! E eu perdi mais um tempo com isso… bem, eu ainda não entendi muito bem essa coisa de singular e plural do rails não, mas segundo o carinha de um mini-curso que eu assisti, isto é normal e a gente se acostuma com o tempo”

    Bom, pelo que eu entendi dos artigos que eu lí é que uma das convenções do Rails é que ele trabalha com pluralização, ou seja, a idéia é usar sempre nome de tabelas no plural. Já os models(modelos) devem ter seus nomes no singular.

    Exemplo:

    Tabela -> clientes
    Modelo -> cliente

    Se você tem uma tabela chamada “clientes” ele espera que seu modelo se chame “cliente.rb”, obviamente com uma Class Cliente dentro. (ps: me corrijam se eu estiver errado! :-))

    Nesse topico (http://forum.rubyonbr.org/forums/1/topics/1493) o Marcelo Júnior faz uma abordagem rápida sobre Migrations e fala bem superficialmente sobre pluralização, mas vale a pena dar uma olhada.

    Valeu?

    []s

  5. Wow….. final mente umA Reailer na comunidade, não desanime, Rails é uma mãe… hehehe

  6. Alex Souza Says:

    Alguém testou esses códigos? Pois fiz os passos certinhos e tals, mas quando vou criar a tabela ‘users’ com rake db:migrate, dá um monte de ‘erros de sintaxe’, e olha que eu não digitei errado pq eu copiei e colei todos os códigos. Alguém sabe o que pode está acontecendo????

    Desde ja agradeço.

  7. amandavarella Says:

    Oi Alex. Peço desculpas. Recentemente eu reformatei os códigos fonte com o plugin do wordpress. Por uma desatenção, os sinais =>, viraram algo do tipo: =&gt, no aquivo routes.rb. Já corrigi no post. Substitua seu código no routes.rb pelo que eu coloquei e tente executar o rake de novo. Qualquer coisa é só falar!

  8. Alex Souza Says:

    Vlw Amanda, brigadão.
    Problema resolvido.


Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s