Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Ruby on Rails

Explorando Devise, Parte 2

Difficulty:BeginnerLength:ShortLanguages:
This post is part of a series called Exploring Devise.
Exploring Devise, Part 1

Portuguese (Português) translation by Erick Patrick (you can also view the original English article)

Introdução

Na primeira parte do tutorial, aprendemos a instalar o Devise e configurá-lo na aplicação Rails. Nessa parte, veremos como integrar DeviseInvitable.

DeviseInvitable é uma extensão que funciona com Devise. Com ela, sua aplicação pode convidar amigos por e-mail. Essa é uma ótima funcionalidade a incluir em apps se forem apps de colaboração.

Configurando DeviseInvitable

Abramos nosso Gemfile e adicionemos:

Executemos o comando bundle install para instalar.

Execute o comando do gerador para adicionar a configuração de DeviseInvitable à configuração do Devise.

Podemos ver as novas mudanças abrindo config/initializers/devise.rb em um editor.

Agora, adicionemos DeviseInvitable ao modelo User.

Isso adicionará o semáforo :invitable aos modelos, assim, o modelo User parecerá com isso.

Executando o comando acima, também gerará um arquivo de migração, parecido com isso:

Agora, execute a migração com rake db:migrate.

Configurando o Controlador para DeviseInvitable

DeviseInvitable requer que sejam passadas alguns parâmetros ao enviar um convite. Para isso funcionar, precisamos dar permissão aos parâmetros que serão usados. Usando algum editor, abra app/controllers/application_controller.rb e faça-o parecer com isso:

Acima, podemos ver que :email foi autorizado para o DeviseInvitable.

Agora, vejamos o que temos em nossa linha de comando. Lá, executaremos rails console e digite isso:

Isso deve retornar algo parecido com o que vemos abaixo, embora com algumas diferenças.

Funcionou como planejado.

Não queremos os usuários enviando convites pela linha de comando, logo, é importante configurarmos DeviseInvitable para funcionar no front-end. E isso é simples. Executemos o gerador para criar as visões para DeviseInvitable.

rails generate devise_invitable:views users

Também devemos adicionar um link em algum lugar da nossa aplicação, apontando para a página de enviar convites (app/views/users/invitations/new.html.erb).

Nessa aplicação, podemos adicionar o link no arquivo da navegação. Eis como fizemos:

Para ver as rotas disponíveis pela DeviseInvitable, execute rake routes | invit. Eis como o retorno parecerá.

Vejamos o que temos aqui. Executemos o comando rails server para iniciar o servidor.

No navegador, acesse http://localhost:3000/users/invitation/new. Digite um endereço de e-mails no formulário e clique no botão. Isso deve ser o suficiente! Se formos aos registros do servidor, devemos ver um retorno, informando que o convite foi enviado. No retorno, veremos um link para aceitar o convite.

É muito melhr ver o convite enviado no navegador que na linha de comando. Vejamos como fazer isso.

Integrando Letter_Opener

Letter Opener permite-nos previsualizr emails no navegador. Com ele, não temos de configurar um sistema de entrega de emails enquanto está num ambiente de desenvolvimento.

Abramos o Gemfile e adicionemos o seguinte:

gem 'letter_opener'

Execute bundle install.

Num editor, abra config/environments/development.rb e adicione a linha abaixo.

Reinicie o servidor rails. Abra http://localhost:3000/users/invitation/new no navegador. Preencha e envie o formulário. Dessa vez, uma nova página abrirá contendo o email do convite.

Alterando Rotas Padrão de Acesso e Saída

Por padrão, as rotas sign_in e sign_out do Devise parecem com isso:

sign_in: http://localhost:3000/users/sign_in

sign_out: http://localhost:3000/users/sign_out

Para alterá-las, abra config/routes.rb e adicione isso:

Agora, podemos abrir http://localhost:3000/signin.

Conclusão

Agora, sabemos como usar a DeviseInvitable. Também aprendemos sobre a gem letter_opener. Existem inúmeras outras coisas que podemos fazer com Devise, então, é bom ler a Wiki. Obrigado por ter continuado conosco.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.