Artigo WebMobile 21 - Mini-curso de Ruby on Rails - Parte 3

No artigo dessa edição, conheceremos como exibir datas, trabalhar com validações de campos e como fazer um feed RSS para nosso blog.

Mini-curso de Ruby on Rails – Parte 3

Exibição de datas, validações, RSS e conhecendo os conceitos de layout do framework

Nos artigos anteriores, vimos como criar nosso primeiro scaffold e como trabalhar com relacionamentos simples. No artigo dessa edição, conheceremos como exibir datas, trabalhar com validações de campos e como fazer um feed RSS para nosso blog.

Exibição de datas

Por padrão, os scaffolds do Rails criam duas colunas relacionadas a data. Uma coluna chamada ‘created_at’ e outra chamada ‘updated_at’, que são campos do tipo datetime. Esses campos são responsáveis por preencher automaticamente a data de criação e atualização de um registro, sem necessidade do desenvolvedor especificar isso em momento algum.

Para exibir a data de um registro, basta exibir o valor desse campo em sua view. No caso do nosso sistema de blog, abra a view responsável por listar os posts (/app/views/post/index.erb.html) e insira o valor do campo created_at. O resultado será a Listagem 1.

Listagem 1. Arquivo /app/views/posts/index.html.erb

<h1>Primeiro Projeto</h1> <% for post in @posts %> <h2><%= link_to post.title, post %></h2> <h3><%= post.created_at %></h3> <p> <%=h post.body %> <small> <%= link_to 'Edit', edit_post_path(post) %> - <%= link_to 'Destroy', post, :confirm => 'Are you sure?', :method => :delete %>     </small> </p> <% end %> <br /> <%= link_to 'New post', new_post_path %>

A novidade frente ao código da segunda coluna está na linha 4.   O campo created_at é exibido dentro de um cabeçalho <h3>. Entretanto, a data é retornada no formato: “2008-08-17 17:16:48 UTC”. Isso não é muito amigável, não? Então vamos exibir a data como já estamos habituados, no formato DD/MM/AA HH:MM. Para isso vamos utilizar o método strftime do Ruby, responsável por quebrar e formatar uma data. Substitua então a linha 4 de nossa view por:

<h3><%= post.created_at.strftime("Criado em %d/%m/%Y %H:%M") %></h3>

Podemos formatar uma data de várias formas, inclusive inserindo um texto junto a ela. Agora, a data é exibida desse modo: “Criado em 17/08/2008 17:16”. Cada caractere vindo depois do símbolo de porcentagem retorna uma parte da data. Confira na Tabela 1 como formatar as principais unidades de tempo.

Tabela 1. Formatando unidades de tempo.

%a o dia da semana abreviado (‘sun’)
%A o dia da semana (‘sunday’)
%b o mês abreviado (‘aug‘)
%B"
[...] continue lendo...
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados