O que é uma Rota Singular? 2

Publicado por Carlos Brando em 17 de Julho de 2008

Foto de GeorgieR

Além do map.resources, há também uma forma singular (ou “singleton“) de rotear recursos: map.resource. Esta forma é usada para representar um recurso que só aparece uma vez no contexto.

Faz muito sentido usar uma rota singular quando temos um recurso que será único dentro da aplicação ou da sessão do usuário corrente.

Por exemplo, em um projeto de uma agenda cada usuário registrado tem seu próprio catálogo de endereços, então poderíamos cria nossa rota assim:

map.resource :address_book

Com isto podemos usar todo o conjunto de recursos disponibilizados pelo Rails, tais como:

GET/PUT address_book_url
GET edit_address_book_url
PUT update_address_book_url



Note que tudo está no singular. Estamos assumindo que no contexto atual não precisamos especificar qual catálogo de endereços desejamos, ao invés disso podemos simplesmente dizer “o catálogo de endereços”, já que o usuário atual só tem um.

O relacionamento entre a tabela de catálogos e o usuário corrente não é automático, você deve autenticar o usuário e retornar o catálogo dele. Não existe mágica ou poderes psíquicos aqui, é apenas uma outra técnica de roteamento a nossa disposição, se precisarmos.

HTTP Status Code no Rails 6

Publicado por Carlos Brando em 14 de Julho de 2008

No arquivo status_codes.rb do Rails temos um mapeamento de cada HTTP status code com uma mensagem padrão correspondente. Além disso ali também há um trecho de código que mapeia cada status em um símbolo, o que facilita seu uso durante nosso desenvolvimento:

SYMBOL_TO_STATUS_CODE = STATUS_CODES.inject({}) do |hash, (code, message)|
  hash[message.gsub(/ /, "").underscore.to_sym] = code
  hash
end

Usar estes símbolos deixarão nosso código muito mais claro do que usar o código numérico do status. Por exemplo, qual das duas linhas abaixo é mais intuitiva?

assert_response 400
assert_response :bad_request

Para facilitar vou listar abaixo os códigos, as mensagens e os símbolos criados pelo Rails:

Status Code Status Message Symbol
100 Continue :continue
101 Switching Protocols :switching_protocols
102 Processing :processing
200 OK :ok
201 Created :created
202 Accepted :accepted
203 Non-Authoritative Information :non_authoritative_information
204 No Content :no_content
205 Reset Content :reset_content
206 Partial Content :partial_content
207 Multi-Status :multi_status
226 IM Used :im_used
300 Multiple Choices :multiple_choices
301 Moved Permanently :moved_permanently
302 Found :found
303 See Other :see_other
304 Not Modified :not_modified
305 Use Proxy :use_proxy
307 Temporary Redirect :temporary_redirect
400 Bad Request :bad_request
401 Unauthorized :unauthorized
402 Payment Required :payment_required
403 Forbidden :forbidden
404 Not Found :not_found
405 Method Not Allowed :method_not_allowed
406 Not Acceptable :not_acceptable
407 Proxy Authentication Required :proxy_authentication_required
408 Request Timeout :request_timeout
409 Conflict :conflict
410 Gone :gone
411 Length Required :length_required
412 Precondition Failed :precondition_failed
413 Request Entity Too Large :request_entity_too_large
414 Request-URI Too Long :request_uri_too_long
415 Unsupported Media Type :unsupported_media_type
416 Requested Range Not Satisfiable :requested_range_not_satisfiable
417 Expectation Failed :expectation_failed
422 Unprocessable Entity :unprocessable_entity
423 Locked :locked
424 Failed Dependency :failed_dependency
426 Upgrade Required :upgrade_required
500 Internal Server Error :internal_server_error
501 Not Implemented :not_implemented
502 Bad Gateway :bad_gateway
503 Service Unavailable :service_unavailable
504 Gateway Timeout :gateway_timeout
505 HTTP Version Not Supported :http_version_not_supported
507 Insufficient Storage :insufficient_storage
510 Not Extended :not_extended

Rails Podcast Brasil - Episódio 21 4

Publicado por Carlos Brando em 19 de Junho de 2008

Foto de JackBaty

DHH está abandonando o Rails? O que é este tal de SproutCore? Como usar o GitHub debaixo do firewall da minha empresa?

Ficou curioso? Então baixe agora o último episódio do Rails Podcast Brasil e obtenha a resposta a estas e mais uma dúzia de questões.

Para fazer o download deste ou dos episódios mais antigos, clique aqui.

E não se esqueça que agora você pode assinar o feed do podcast direto no seu iTunes.

Neste episódio:

New Free Book: “Ruby on Rails 2.1 - What’s new” 65

Publicado por Carlos Brando em 09 de Junho de 2008

Click here to download

Less than one week after the release of Rails 2.1, was launched in Brazil the first book describing all the new features of this release.

After the launch of the book in Portuguese, the Brazilian community united to translate the book into English.

Done! A gift from all Brazilian Railers to the international community.

To download click here.

Credits

The book was originally written by Carlos Brando and revised by Marcos Tapajos.

If you liked the book, you can recommend them:
Recommend Carlos Brando
Recommend Marcos Tapajos

Thank these guys for the English version:

Rafael Barbosa

Caike Souza

Pedro Pimentel

Abraão Coelho

Ricardo S Yasuda

Agora é a sua vez! 9

Publicado por Carlos Brando em 07 de Junho de 2008

Confesso que antes de lançar o e-book de Rails 2.1 eu estava um pouco preocupado quanto a reação da comunidade brasileira, afinal todo o texto do livro está também neste blog. Por que alguém ia se interessar em um livro assim? Nesta hora agradeço ao Marcos Tapajós pela iniciativa em me ajudar a montar o livro.

Agora imaginem a minha alegria ao ver tanta gente baixando o livro, comentando no blog, enviando emails e mandando mensagens via Twitter? Até agora de acordo com os logs do meu servidor já foram realizados mais de 700 downloads do livro à partir deste site.

Isto tudo já é muito legal e me estimula a continuar contribuindo com a comunidade brasileira ainda mais. Agora melhor do que isto é ver o reconhecimento internacional pelo trabalho que estamos realizando.

Antes de qualquer coisa eu sou um programador como vocês e tenho todo interesse em ver o Ruby e o Rails se tornarem fortes neste país. Tenho mais interesse ainda em ver empresas de outros países interessadas em nós brasileiros, como já está acontecendo. Como costumo dizer, isto é bom para os negócios… :)

Mas ainda não atingimos nosso potencial máximo. Para isto precisamos mostrar do que somos capazes. Este post é mais do que um post de agradecimento ou informativo, é uma convocação para levantarmos nossos traseiros gordos da cadeira e fazermos alguma coisa. Ou melhor ainda, já que passamos horas e horas sentados na frente de um computador, ao invés de gastarmos nosso tempo vendo vídeos no YouTube ou mandando scraps pelo Orkut, que tal participar em algo grande como a tradução do livro “Why’s (Poignant) Guide to Ruby” para português, ou da tradução do livro “Ruby on Rails 2.1 - O que há de novo?” para inglês?

Os dois projetos estão tendo uma ótima visibilidade lá fora e quando estiverem completos, chamarão à atenção. E os envolvidos nesses projetos terão seus nomes divulgados. São esses nomes que as empresas estão interessadas em contratar. Pessoas tão apaixonadas pelo que fazem, que mesmo em suas horas vagas programam, escrevem ou ajudam em traduções como forma de diversão.

Tem muita coisa acontecendo lá fora e aqui no Brasil. Quem vai ficar de fora?

Tradução do livro Ruby on Rails 2.1 - O que há de novo:

Responsável: Marcos Tapajós

Repositório: http://github.com/carlosbrando/rails21-book/tree/master
Grupo: http://groups.google.com/group/rails21
Relação de capítulos já traduzidos: Clique aqui

Convocação feita pelo site GitHub: http://github.com/blog/81-rails-2-1-book-translation

Tradução do livro Why’s (Poignant) Guide to Ruby:

Responsável: Carlos Brando

Repositório: http://github.com/carlosbrando/poignant-br/tree/master
Grupo: http://groups.google.com/group/whys-poignant-guide-to-ruby—portugues
Relação de capítulos já traduzidos: Clique aqui

Sinta o nível de qualidade da tradução: Clique aqui