terça-feira, 9 de junho de 2009

RnP #1 Como atribuir o endereço do site a uma action

Para iniciar a série de posts "Rails na prática", vou falar sobre um assunto que foi uma das minhas primeiras dúvidas na hora de implementar um site com Rails.

Ruby on Rais é um framework MVC (Model View Controller) e para acessar uma página geralmente o endereço é composto da seguinte forma:

http://dominio_do_seu_site/nome_do_controller/nome_da_action


O que acontece é que, quando estou criando um site, eu quero que o usuário tenha a opção de acessar meu site direto pelo domínio dele, por exemplo:

http://www.brunograsselli.com.br

Como fazer, então, para que o Rails atribua o endereço de meu domínio à algum endereço reconhecido por ele?

Existe um arquivo dentro do Rails que define os endereços de sua aplicação ou, como ele diz, as rotas. Esse arquivo encontrasse em config/routes.rb

Abra esse arquivo pelo seu editor de texto e digite dentro dele uma linha como, por exemplo:

map.root :controller => "posts", :action => "index"

Isso fará com que, quando eu acessar o endereço do domínio do meu site, o Rails me mostre a página que é montada pela action index do controller posts.

Como eu estou atribuindo à action index, eu poderia apenas informar o controller:

map.root :controller => "posts"

Importante: Além de fazer isso, para que comece a funcionar você precisa também excluir o arquivo que encontrasse em public/index.html

Após excluir esse arquivo, já deve começar a funcionar.

Nesse arquivo encontrasse comentado uma série de formas que você pode definir rotas para sua aplicação. Vale a pena dar uma estudada no assunto para definir endereços mais simples e intuitivos e, também, mais valorizados pelo google.

Você pode encontrar mais informações sobre o assunto em http://guias.rubyonrails.pro.br/routing.html

Espero que o texto ajude quem está começando a se aventurar no RoR, em breve continuarei com os textos da série que visa ensinar como solucionar algumas dúvidas simples que podemos ter no início do aprendizado Rails.

Abraços e até o próximo post.

0 comentários: