Ruby Masters Conf

Abraço

Fala Pessoal nada como entrar o ano com um bom encotro de Ruby.

2 dias de Paletras !!!

http://rubymastersconf.com/

entre e Faça sua inscricao .

E ajude a Divulgar .

Anúncios
Categorias:ruby on rails

Os números de 2010

Os duendes das estatísticas do WordPress.com analisaram o desempenho deste blog em 2010 e apresentam-lhe aqui um resumo de alto nível da saúde do seu blog:

Healthy blog!

O Blog-Health-o-Meter™ indica: Este blog está em brasa!.

Números apetitosos

Featured image

Um duende das estatísticas pintou esta imagem abstracta, com base nos seus dados.

Um Boeing 747-400 transporta 416 passageiros. Este blog foi visitado cerca de 1,600 vezes em 2010. Ou seja, cerca de 4 747s cheios.

 

Em 2010, escreveu 10 novos artigos, nada mau para o primeiro ano! Fez upload de 6 imagens, ocupando um total de 12mb.

The busiest day of the year was 10 de dezembro with 168 views. The most popular post that day was O Comovente guia de Ruby do Why em PDF.

De onde vieram?

Os sites que mais tráfego lhe enviaram em 2010 foram nomedojogo.com, forum.rubyonbr.org, Google Reader, google.com.br e orkut.com.br

Alguns visitantes vieram dos motores de busca, sobretudo por rails has_many, has_many rails, has_many, pesquisa dinamica rails e mairon brasil

Atracções em 2010

Estes são os artigos e páginas mais visitados em 2010.

1

O Comovente guia de Ruby do Why em PDF dezembro, 2010
13 comentários e 1 “Like” no WordPress.com,

2

relacionamento has_many fevereiro, 2010
3 comentários

3

Busca Dinamica AJAX + Ruby on Rails agosto, 2010

4

Boas Praticas Ruby on Rails setembro, 2010
5 comentários

5

recursos rails simples assim “count,sum,minimum,maximum,average” maio, 2010

Categorias:Uncategorized

Paraná on Rails (cidades sede)

Fala Pessoal,estamos correndo a tras para no ano de 2011 fazer acontecer o Parana on Rails.

Mas para isso gostarias de saber qual cidade seria a melhor opcao .

acesse o link e nos ajude a fazer esse grande evento virar realidade .

e qualquer sugestao ou ideia manda postem  ai

abraco.

Categorias:ruby on rails

O Comovente guia de Ruby do Why em PDF

dezembro 10, 2010 19 comentários

why_guia_de_ruby_pdf

Pessoal esta ai em PDF o livro que foi traduzido Pelo Carlos Brando do Blog o Nome Do Jogo e mais uma super equipe .
que esta neste link aqui (O comevente guia de Ruby do Why)
O Carlos Brando me ajudou a desenvolver esse material espero que seja bastante ultil.

qualquer problema ou erro postem ai para eu estar arrumando e atualizado o aquivo.

Valeu ate a proxima…

Categorias:ruby on rails

Boas Praticas Ruby on Rails

setembro 27, 2010 6 comentários

Fala galera hoje vou abordar um assunto bastante interessante simples porem eficiente 😉
Seu você usa o scaffold por padrão o seu método index no controller vem mais ou menos assim

def index
 @produtos = Produto.find(:all)
end

em SQL isso significa ( SELECT * FROM PRODUTOS )
Um comando muito poderoso.
Agora pensamos assim essa classe produtos tem muitos detalhes (id,nome,categoria,codigo,codigo_fabricante,custo,referencia,codigo_barra,,, )
e que você tem muitos produtos,Pense no seu SELECT trazendo tudo isso em uma pancado só, Meus Deus…
Primeiro o usuário não vai e não tem o poder de ver todos os produtos ao mesmo tempo, ai começamos a usar nossas boas praticas,
uma delas seria criar uma busca pelos produtos filtrando por nome ou por categoria isso ja evitaria uma super consulta SQL,
outra seria uma paginação o Rails tem um gem chamado will_paginate fantástico e muito simples, e com essas duas opções ainda no podemos usar mais uma boa pratica que seria selecionar somente as colunas necessárias algo tipo

def index
 @produtos = Produto.all(:select => 'id,nome,referencia,codigo_barra')
end

Em SQL seria algo com ( SELECT id,nome,referencia,codigo_barra FROM PRODUTOS )

Polpamos consultas desnecessária pode ter certeza que você já ganhou uns ms a mais
Isso tudo são detalhes mas pode ter certeza que vão fazer muita diferença no desempenho do seu projeto.
Fica ai dica um abraco ate a próxima e pratique essas ideia .
>>> DRY>>>

Busca Dinamica AJAX + Ruby on Rails

agosto 23, 2010 4 comentários

Opa hoje vou falar de um assunto super eficaz uma busca onde onde vc vai digitando e ele vai filtrando as infomacoes para você
vamos la então
vamos começar criando um arquivo na sua view bem simples chamado busca_index.erb
vamos criar uma routs
projeto/config/routes.rb
o nome da minha tabela eh produtos dai fica algo assiminfomacoes


ActionController::Routing::Routes.draw do |map|

  map.resources :produtos, :collection => {:busca_index => :get};

  map.connect ':controller/:action/:id'
  map.connect ':controller/:action/:id.:format'
end

dai vamos criar um method no nosso controller

app/controllers/produtos_controller.rb

def busca_index
 @produtos = CompraProduto.find(:all, :conditions => ["produto LIKE ?","%#{params[:busca]}%"])
end

agora vamos editar nossa view index busca_index
primeiro nossa index
vamos dar uma limpada e deixar somente o form da busca
algo tipo

<h1>Listing compra_produtos</h1>
 <%form_tag busca_index_produtos_path, :method => "get" do%>
 <input id="busca" name="busca" type="text" onKeyUp="pesquisa(this.value)"/>
 <%=submit_tag "Buscar"%>
 <% end %>

criei uma input html mesmo usando uma função javascript (OnKeyUp)
agora que vem a parte mais interessante
nessa view mesmo vamos criar um tag script para por nosso javascript e nosso ajax
vamos la, vai ficar algo assim.

<script>

function pesquisa(valor)

{

//FUNÇÃO QUE MONTA A URL E CHAMA A FUNÇÃO AJAX
//aqui ele vai montando a busca
url="/compra_produtos/busca_index?busca="+valor+"&commit=Buscar";

ajax(url);

}

function ajax(url)

{

//alert(nick);

//alert(dest);

//alert(msg);

req = null;

// Procura por um objeto nativo (Mozilla/Safari)

if (window.XMLHttpRequest) {

req = new XMLHttpRequest();

req.onreadystatechange = processReqChange;

req.open("GET",url,true);

req.send(null);

// Procura por uma versão ActiveX (IE)

} else if (window.ActiveXObject) {

req = new ActiveXObject("Microsoft.XMLHTTP");

if (req) {

req.onreadystatechange = processReqChange;

req.open("GET",url,true);

req.send();

}

}

}

function processReqChange()

{

// apenas quando o estado for "completado"

if (req.readyState == 4) {

// apenas se o servidor retornar "OK"

if (req.status ==200) {

// procura pela div id="pagina" e insere o conteudo

// retornado nela, como texto HTML

document.getElementById('pagina').innerHTML = req.responseText;

} else {

alert("Houve um problema ao obter os dados:n" + req.statusText);

}

}

}
</script>

agora vamos mexer no nosso arquvo busca_index


<table>
 <tr>
 <th>Compra</th>
 <th>Produto</th>
 <th>Valor</th>
 </tr>

<% for compra_produto in produtos %>
 <tr>
 <td><%=h compra_produto.compra_id %></td>
 <td><%=h compra_produto.produto %></td>
 <td><%=h compra_produto.valor %></td>
 <td><%= link_to 'Show', compra_produto %></td>
 <td><%= link_to 'Edit', edit_compra_produto_path(compra_produto) %></td>
 <td><%= link_to 'Destroy', compra_produto, :confirm => 'Are you sure?', :method => :delete %></td>
 </tr>
<% end %>
</table>

bem secao heheh e para finalizar adcinar na view index a div pagina assim

<h1>Listing compra_produtos</h1>
 <%form_tag busca_index_compra_produtos_path, :method => "get" do%>
 <input id="busca" name="busca" type="text" onKeyUp="pesquisa(this.value)"/>

 <%=submit_tag "Buscar"%>

 <% end %>

<div id="pagina">
</div>

<script>

function pesquisa(valor)

{

//FUNÇÃO QUE MONTA A URL E CHAMA A FUNÇÃO AJAX

url="/compra_produtos/busca_index?busca="+valor+"&commit=Buscar";

ajax(url);

}

function ajax(url)

{

//alert(nick);

//alert(dest);

//alert(msg);

req = null;

// Procura por um objeto nativo (Mozilla/Safari)

if (window.XMLHttpRequest) {

req = new XMLHttpRequest();

req.onreadystatechange = processReqChange;

req.open("GET",url,true);

req.send(null);

// Procura por uma versão ActiveX (IE)

} else if (window.ActiveXObject) {

req = new ActiveXObject("Microsoft.XMLHTTP");

if (req) {

req.onreadystatechange = processReqChange;

req.open("GET",url,true);

req.send();

}

}

}

function processReqChange()

{

// apenas quando o estado for "completado"

if (req.readyState == 4) {

// apenas se o servidor retornar "OK"

if (req.status ==200) {

// procura pela div id="pagina" e insere o conteudo

// retornado nela, como texto HTML

document.getElementById('pagina').innerHTML = req.responseText;

} else {

alert("Houve um problema ao obter os dados:n" + req.statusText);

}

}

}
</script>

e ta pronto desculpem a falta de detalhes mas qualquer duvida só postar ai beleza, valeu galera ate a próxima abraco
>>>> DRY >>>

time_ago_in_words

Hoje um cliente me pedio uma tema super interessante onde  eu precisava mostrava quantos dias ja estava cadastrado o pagamento de um cliente

em fim dei uma pesquisa e achei a seguinte solucao

time_ago_in_words

como usar ???????

simples assim se vc usa o scaffond o rails ja cria um campo no banco de dados chamado created_at do tipo timestamp without time zone

onde ele te data e hora que foi feito um insert em fim

criei esse campo

e na minha index de clientes eu so imprimi assim

<%= time_ago_in_words(cliente.created_at) %>

e ele me da certinho os dias em que foi feito esse insert,

muito bacana a forma que ele trabalha

fica ai a dica ….

abraco

Categorias:Uncategorized