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 o mês (‘august’)
%d o dia do mês (01...31)
%H a hora do dia, no formato 24 horas (00...23)
%I a hora do dia, no formato 12 horas (01...12)
%j o dia do ano (1...366)
Quer ler esse conteúdo completo? Tenha acesso completo