Screencasts do getOnCode();

Disponibilizei hoje o primeiro screencast do getOnCode();

Minha idéia é produzir sempre alguns screencasts, mas como esta atividade é um pouco trabalhosa, eu ainda não decidi qual será a frequência com que serão produzidos, isso depende da receptividade do público.

Bom, dê uma olhada lá e depois me diga o que achou.

Abraço.

Rails: Relacionamentos belongs_to na geração do scaffold

Se você possui modelos / tabelas que possuem relacionamento e deseja criar este relacionamento na execução do scaffold, basta usar o seguinte comando:

 script/rails generate scaffold User fullname:string user_type:references ativo:boolean

Após os arquivos serem gerados, ao editar o modelo user.rb você terá o modelo abaixo: 

class User < ActiveRecord::Base
belongs_to :user_type
end

Fica a dica. 

Abraços.

 

 

Integrando o Jobs com o twitter

Uma das funcionalidades que eu mais queria adicionar ao jobs era a integração com o twitter e eu acabei demorando para fazê-la porque meu tempo esteve escasso nos últimos dias e para somar eu tive um problema nas costas que me impediram de trabalhar por alguns dias, mas o importante mesmo e motivo deste post é que a integração foi feita hoje da seguinte forma:

O usuário acessa o jobs, escolhe uma vaga e a seleciona para ver seus detalhes.

Selecionando_vaga

É mostrado logo abaixo dos detalhes da vaga uma opção para twitar vaga e por motivos de segurança o twitter exige que você autorize a integração do jobs com a sua conta do twitter. Fique tranquilo pois o site não tem acesso nenhuma informação sensível sua como por exemplo a senha, a propósito, a tecnologia OAuth é uma das mais seguras para autenticação em ambiente web na atualidade. 

Veja na screenshot abaixo como a conexão entre o jobs e o twitter é feita:

Conectando_com_twitter

Após autorizar o jobs a se conectar com sua conta, você já pode twitar pelo nosso site, dessa forma, é bem prático indicar as vagas para os seus seguidores. Olha só:

Twitando

 

Pronto, foi twitado.

Nositedotwitter

Esta integração foi bem tranquila e eu poderia ter feito utilizando diretamente a API do twitter ou usando o @Anywhere que permite integrar sites com o twitter usando somente javascript de uma maneira bem simples e prática, essa foi a maneira utilizada. 

É isso, espero que os usuários do jobs aproveitem mais essa funcionalidade do site e claro, espero os feedbacks de vocês.

Abraços.

Ruby on Rails + JQuery

English translation is below 

Quando comecei a utilizar Ruby on Rails uma das primeiras coisas que eu procurei saber foi como substituir o Prototype e Script.aculo.us que são as libs padrão para utilizar javascript pelo JQuery.

Decidi fazer isso não pelo fato de achar o Prototype e Script.aculo.us ruins mas, pelo fato de a muito tempo eu já utilizar o JQuery nas aplicações web que desenvolvo e com isso ter uma boa experiência com ele e também por gostar muito deste framework javascript.

O Rails possui diversos helpers que tornam o desenvolvimento com ajax muito simples, porém, todos os helpers utilizam o framework prototype em conjunto com scrip.taculo.us e aí que entra um plugin que me poupou muito trabalho pois ele já faz a integração do JQuery com os helpers do Ruby on Rails ou seja, a mudança é feita de uma maneira tão transparente que até assusta :) pois normalmente este tipo de coisa não são tão simples.

Bem, para instalar o plugin basta executar o seguinte comando de dentro do diretório da sua app rails:
script/plugin install git://github.com/aaronchi/jrails.git

A partir deste momento sua aplicação já está integrada com o JQuery e os helpers passarão a utilizar o JQuery em vez de Prototype e para componentes de UI serão utilizados os componentes do JQuery UI.

Para importar todos os arquivos JS relacionados ao JQuery e aos helpers para sua aplicação, faça isso:
<%= javascript_include_tag :defaults %>

Você pode obter maiores informações neste site.

In English 

When I started using Ruby on Rails one of the first things I wanted to know was how to replace the Prototype and Script.aculo.us libs because it is the standard for javascript and ajax to JQuery.

I decided to do this not because i think the Prototype and Script.aculo.us are poor, bad or something but because of the long time i’m already using JQuery in web applications and have a good experience with it and also really like this javascript framework.

Rails has many helpers that make developing with Ajax very simple, however, all helpers are using the prototype framework in conjunction with scrip.taculo.us by default and at this point i knew a plugin that has saved me a lot of work because he makes the integration of jQuery helpers with Ruby on Rails, the change was so clear that it really scared me :) because usually this kind of changes is not so simple.

Well, to install the plugin simply run the following command from within the directory of your rails app:
script/plugin install git://github.com/aaronchi/jrails.git

From this moment your application is already integrated with JQuery and all helpers will use JQuery instead of Prototype and UI components will use JQuery UI components.

To import all JQuery and Helpers Javascripts into your app justo do it:
<%= javascript_include_tag :defaults %>

You can get more info here.

Paginação fácil com Rails: will_paginate

English translation is below

INTRODUÇÃO

Uma coisa simples mas normalmente chata de se fazer na mão é a paginação de conteúdo, mas a maioria dos frameworks para desenvolvimento, independente da linguagem em que foi escrito conta com algum componente responsável por esta funcionalidade que apesar de simples ninguém gosta de escrever na mão do zero.

Eu já falei sobre o Zend_Paginator a bastante tempo atrás e você pode ver aqui e hoje vou falar sobre um componente que realiza o mesmo trabalho só que no framework Ruby on Rails.

will_paginate

Existem vários plugins para paginação no Rails mas daqueles que eu testei, este foi o que achei o mais simples de usar.

O código dele está disponibilizado no github e pode ser utilizado como gem, plugin ou por meio de um tarball que é disponibilizado para download.

A instalação dele é bem simples e como gem pode ser feita da seguinte forma:

gem install will_paginate

Para instalar como plugin:

script/plugin install git://github.com/mislav/will_paginate.git

Pronto! Agora vou mostrar como utilizar.
Supondo que você tenha uma model chamada User e queira paginar o conteúdo retornado da tabela Users, você invoca o método paginate informando a página atual e a quantidade de registros por página. 
Caso queira incluir condições em sua consulta, você pode fazer normalmente como se faz em qualquer consulta utilizando uma model gerada pelo rails, o código abaixo demonstra esta situação:

@users = User.paginate :page => params[:page], :per_page => 10, :conditions => ["status = :active", {:active => 'A'}]

Na view nós devemos incluir o trecho de código que monta os botões/links de paginação:

<%= will_paginate @users %>

CONSIDERAÇÕES FINAIS

Existem outros recursos deste plugin que podem ser explorados por exemplo, mudar o layout do controle de paginação porém, não irei aborda-los aqui neste post porque minha intenção é sempre ser o mais breve e simples possível. 

Para maiores informações, dê uma olhada na página deste componente no github: http://github.com/mislav/will_paginate

Abraço!!! 

In English

INTRODUCTION

A simple thing but usually boring to do by the hand is the content pagination, but in most frameworks for development, regardless of what language it was written has some component responsible for this feature that although simple one likes to write from scratch.

I’ve talked about the Zend_Paginator a long time ago as you can see (brazilian portuguese only) here, and  today and I will talk about a component that performs the same job but in the Ruby on Rails framework.

will_paginate

There are several plugins for pagination in Rails but of those I tested, this was what I found the simplest to use.

The code it is available on github and can be used as a gem, plugin or through a tarball that is available for download.

The installation is pretty simple and as gem can be made as follows:

gem install will_paginate

Plugin Installation:

script/plugin install git://github.com/mislav/will_paginate.git

Ready! Now I’ll show how to use.

Assuming you have a model called User and you want to paginate the content returned from the Users table, you invoke the method paginate informing the current page and number of records per page.
If you want to include conditions in your query, you can usually do as is done in any query using a model generated by the rails, the code below demonstrates this:

@users = User.paginate :page => params[:page], :per_page => 10, :conditions => ["status = :active", {:active => 'A'}]

In the view we need to include the code snippet that create the buttons/links pagination.

<%= will_paginate @users %>

FINAL THOUGHTS

There are other features of this plugin that can be exploited,  for example,  change the layout of the pager control but i will not address them here in this post because my intention is to always be as short and simple as possible.

For more information, check out the page of this component on github: http://github.com/mislav/will_paginate

Cheers.