ago 31 2010

calendar_date_select: Calendário Javascript no Rails

Continuando minha jornada no aprendizado do Rails, deparei-me com a tarefa de preencher um formulário com datas. A opção de disponibilizar ao usuário a visualização de um calendário para escolha de uma data é bastante aplicada hoje em dia devido a facilidade e beleza disponibilizada.

Com o Rails, dei uma olhada na gem calendar_date_select e este atendeu às necessidades além de ser muito fácil configurar e inserir em seu código.

Instalando

Bem, utilizei para exemplo Rails 2.3.8.

Caso você deseje apenas instalar em um projeto, escolha:

$ cd my_app

$ script/plugin install http://calendardateselect.googlecode.com/svn/tags/calendar_date_select

Isto instalará o plugin dentro do diretório my_app/vendor/plugins

Você também pode optar por instalar a gem em seu ambiente

$ gem install calendar_date_select

sendo a versão mais atual até a confecção deste post a 1.6.1 e adicionar ao arquivo environment.rb a dependência de sua aplicação com a gem:

config.gem "calendar_date_select"

Utilizando

De forma simples e resumida, primeiramente, devemos adicionar em nosso layout, a chamada para os arquivos javascripts do Rails:

<%= javascript_include_tag :defaults %>

em seguida a chamada aos arquivos javascript e css do calendário:

<%= calendar_date_select_includes "silver"%>

O calendar_date_select proporciona diversas maneiras de utilização. Você pode conferir diversas formas de integração com o seu projeto no site demo. No caso mais simples, para a inserção de uma data em um formulário, apenas adicionamos na view do formulário:

<%= calendar_date_select_tag "minha_data" %>

No meu caso, como a data é um atributo de meu modelo Edição do Evento, associei-o:

<% form_for([@event, @event_edition]) do |f| %>
    <%= f.label :start_date %><br />
    <%= calendar_date_select_tag  "event_edition[start_date]", @event_edition.start_date %>
<% end %>

ago 4 2010

Retorno de Valor com o Operador IF

Quando escrevemos métodos em Ruby, sabemos que a última linha lida/executada no método corresponde ao valor de retorno deste.

A dica rápida de hoje é que, apesar do operador IF “não ser um método”, ele também retorna uma resposta! Observe o exemplo:

ensolarado = true
local =  if ensolarado
               "praia"
          else
               "cinema"
          end

Bem melhor do que atribuir o valor para a variável ‘local’ dentro dos blocos não é?


ago 2 2010

Autenticação no Ruby on Rails com Devise

Resolvi utilizar o Devise para autenticação de usuários no rails. Existem outras alternativas como Authologic, Clearance, etc. Não sei responder qual destas é a melhor ou mais completa. Contudo, após uma pesquisa em fóruns e na comunidade ativa do rails, percebi que muitos adotam o Devise para autenticação e o CanCan para autorização (falarei mais adiante sobre ele) em projetos que necessitam destes recursos. Logo, cabe a você, desenvolvedor, escolher os recursos que mais lhe agradem e que resolvam as suas necessidades e problemas.

Um bom espaço para conhecer o Devise é no blog da empresa que desenvolveu a gem. Tanto no blog da PlataformaTec quanto no github do projeto, existem diversos documentos que fornecem uma excelente documentação para quem quer utilizar o Devise.

Neste primeiro post, vou mostrar procedimentos básicos, mas suficientes para integrar e configurar o Devise com seu projeto.

Continue reading