#configuração, #desenvolvimento

Utilizando Devise em um projeto RoR


Olá pessoal.
Continuando meu propósito de criar um projeto real com RoR descobri um projeto no Github, denominado Devise que é uma solução para autenticação nos projetos RoR.
Além da página de documentação do Devise também utilizei o Railscast – Introducing Devise para enfim adicioná-lo no projeto.

Abra o terminal e instale o Devise:

$ gem install devise

Acesse a pasta do seu projeto Rails, procure pelo arquivo Gemfile e acrescente a linha:

gem 'devise'

Volte para o terminal e atualize as gems:

$ bundle install

Crie um scaffold simples:

$ rails generate scaffold project name:string

Execute as migrações:

$ rake db:migrate

Gere o devise para o projeto:

$ rails generate devise:install

Adicione a configuração default de e-mail no arquivo pastadoprojeto/config/environments/development.rb:

config.action_mailer.default_url_options = { :host => 'localhost:3000' }

Gere o devise para o model User:

$ rails generate devise User

Altere a classe do model User (pastadoprojeto/app/models/user.rb):

class User < ActiveRecord::Base

  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation
end

Altere a migração DeviseCreateUsers (pastadoprojeto/db/migrate/…_devise_create_users.rb):

class DeviseCreateUsers < ActiveRecord::Migration
  def self.up
    create_table(:users) do |t|
      t.database_authenticatable :null => false
      t.recoverable
      t.rememberable
      t.trackable
      t.timestamps
    end

    add_index :users, :email,                :unique => true
    add_index :users, :reset_password_token, :unique => true
  end

  def self.down
    drop_table :users
  end
end

Execute as migrações:

$ rake db:migrate

Remova o arquivo index.html do diretório pastadoprojeto/public.

Adicione a rota no arquivo pastadoprojeto/config/routes.rb:

Tutorialdevise::Application.routes.draw do
  devise_for :users

  resources :projects
# Rota que redireciona para a página principal gerada pelo scaffold.
  root :to => "projects#index"

end

Execute as rotas:

$ rake routes

Por fim adicione a div user_nav no arquivo pastadoprojeto/app/views/layout/application.html.erb, que exibirá os links Sign out, Sign up e Sign in no topo de todas as páginas:

<!DOCTYPE html>
<html>
<head>
  <title>Tutorialdevise</title>
  <%= stylesheet_link_tag :all %>
  <%= javascript_include_tag :defaults %>
  <%= csrf_meta_tag %>
</head>
<body>
	<div id="user_nav">
		<% if user_signed_in? %>
			Signed in as <%= current_user.email %>. Not you?
			<%= link_to "Sign out", destroy_user_session_path %>
		<% else %>
			<%= link_to "Sign up", new_user_registration_path %> or <%= link_to "Sign in", new_user_session_path %>
		<% end %>
	</div>
<%= yield %>
</body>
</html>

Para consegui testar basta iniciar o servidor:

$ rails s

Agora abra o navegador, acesse http://localhost:3000/users/sign_up cadastre-se e depois acesse http://localhost:3000/users/sign_in para logar.
Nos dois casos as páginas serão redirecionadas para a página principal do scaffold, mas não se preocupe, isto pode ser alterado no arquivo de rotas.
Com isso já dá pra começar a brincar com o Devise.
Até breve 😉

Anúncios
Padrão
#configuração

Projeto RoR nas nuvens – Parte 3


Olá pessoal.

No post anterior configuramos o ambiente para o desenvolvimento de aplicação RoR. Neste post iremos configurar o Git e o Github.

No terminal instale o Git e seus auxiliares:


$ sudo apt-get install git-core git-gui git-doc

Com o Git instalado é necessário configurar o Github, para isso realize seu cadastro no site www.github.com e aproveite para me seguir, é só procurar por monteirobrena 😉

Após criar sua conta será preciso criar uma chave pública para adicioná-la no Github.

Antes de criar a chave pública verifique se a pasta .ssh já existe no seu /home, senão existir crie com o comando:


$ cd ~
$ mkdir .ssh

Entre na sua pasta .ssh:


$ cd ~/.ssh

Crie a chave pública:

$ ssh-keygen -t rsa -C "emailcadastradonogithub@email.com"

Irá aparecer a mensagem:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/nomedoseuusuario/.ssh/id_rsa):
Pressione apenas ENTER.

Após pressionar ENTER irá aparecer as seguintes mensagens

Enter passphrase (empty for no passphrase): palavrachave

(Onde palavrachave será uma palavra utilizada para utilizar sua chave pública.)

Será solicitada a repetição da palavrachave para confirmar.

Enter same passphrase again: palavrachave

(Onde palavrachave é a mesma palavra informada anteriormente.)

A próxima etapa é adicionar a chave pública ao Github. Acesse seu Github e sigla o fluxo: “Account Settings” > Click “SSH Public Keys” > Click “Add another public key”

Abra o arquivo ~/.ssh/id_rsa.pub e copie TODO o seu conteúdo. Volte para a página do Github e cole o conteúdo copiado no campo “Key”, em seguida clique em “Add key”.

Chave pública adicionada. Vamos testar.

No terminal:


$ ssh git@github.com

Aparecerá uma mensagem semelhante à:

The authenticity of host ‘github.com (207.97.227.239)’ can’t be established.RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.Are you sure you want to continue connecting (yes/no)?

Digite “yes”.

Agora será solicitado que você informe a palavrachave usada na criação da chave pública. Essa solicitação pode aparecer no terminal ou em uma janela auxiliar. Seja qual for a maneira que aparecer informe a palavrachave e confirme.

Então, no terminal, deverá aprecer uma mensagem semelhante a esta:

Warning: Permanently added ‘github.com,207.97.227.239’ (RSA) to the list of known hosts.PTY allocation request failed on channel 0Hi seuusuariocadastradonogithub! You’ve successfully authenticated, but GitHub does not provide shell access. Connection to github.com closed.

Quase lá!

Agora iremos setar as informações pessoais no Github.

No terminal informe seu nome e seu e-mail:

$ git config --global user.name "Nome Sobrenome"
$ git config --global user.email "emailcadastradonogithub@email.com"

Agora falta informarmos o nome do usuário e o token fornecido pelo Github:

$ git config --global github.user nomedousuariocadastradonogithub
$ git config --global github.token tokencopiadodogithub

O tokencopiadodogithub pode ser encontrado no caminho “Account Settings” > Click “Account Admin.”

API Token
Your API token is xxxxyyyyzzzzwwwwxxxxyyyyzzzzwwww …

E como o último passo vamos criar um repositório. Para isto acesse seu “Dashboard” no Github e clique no botão “New Repository”. Digite as informações solicitadas e clique em “Create Repository”.

Volte ao terminal para criar o repositório na sua máquina:

$ mkdir ~/app
$ cd ~/app
$ git init
$ touch README

Faça o commit inicial:

$ git add README
$ git commit -m 'Primeiro commit.'

Agora falta apenas adicionar a origem e enviar o commit pro Github.

$ git remote add origin git@github.com:seuusuariocadastradonogithub/app.git
$ git push origin master

Pronto! Repositório criado e configurado no Github.
No próximo post iremos ver como realizar o deploy de uma aplicação RoR no Heroku.
Até lá 😉

Padrão
#prosa

Projeto RoR nas nuvens – Parte 1


Olá pessoal.

Já tem um bom tempo que venho tentando me aprofundar nos estudos de Ruby on Rails. Neste intuito utilizei os livros: Use a cabeça: Rails e Desenvolvendo Aplicações Web com Ruby on Rails 2.3 e PostgreSQL. Confesso que não cheguei a finalizá-los, porque apesar deles serem absurdamente práticos senti a necessidade de começar um projeto “de verdade”.

Sendo assim meu propósito é desenvolver um projeto real e ir documentando através dos posts.

Pretendo utilizar neste projeto as tecnologias atuais e free:

  • Ubuntu Maverick
  • Ruby
  • Rails
  • jQuery
  • CSS3
  • HTML5
  • PostgreSQL
  • Git
  • Github
  • Heroku

Também pretendo utilizar algumas metodologias como TDD.

Por enquanto é isso, o próximo post será sobre configuração do Ruby on Rails. Já postei sobre a configuração do RoR aqui e aqui mas ocorreram algumas mudanças nestas últimas versões.

Até la 😉

Padrão