Pular para o conteúdo principal

Postagens

Mostrando postagens de 2009

Search engine in Ruby on Rails

Q uem não gosta de facilidades no hora de navegar na  internet. Uma dessas facilidades pode ser chamada de simple text-full search engine . Em resumo são aqueles campos que aceitam qualquer coisa do usuário e devolve uma lista de possíveis registros procurados.  Uma vantagem é que se o filtro de busca costuma ser cheio de critérios é só indexar no campo full-text e está resolvido... resolvido para o programador e para o usuário que irá digitar o que sabe no campo (ou seja não existe campo não nulo neste filtro).  Existem vários exemplos desse campo: Google tem um campo bem grande na sua página inicial; mercado livre; submarino... tem um monte desses sites com essa solução. O problema na minha empresa não era tão diferente. A gente trabalha num projeto baseado em CRM (Rails and DB2) e os contatos inseridos no banco possuem várias informações, ou seja a tela de pesquisa de um contato específico é possível por várias informações (nome, data de nascimento, e-mail, endereco, cidade

Noticias de São Paulo Hoje (8 dez 2009 às 8 am)

Fala ae rapazeada... faz tempo que eu nao posto nada. Hoje estou com o dia livre. Vou postar algumas fotos da nossa querida São Paulo. Essa é da frente da minha casa..

Rails: Rotas

Fala rapazeada... Hoje algumas notas sobre rotas: 1º- Diferença entre member e collection: map.resources :notas, :member => { :baixar => :get } map.resources :notas, :collection => { :baixar => :get } A rota para collection será: "/notas/baixar". E para member será necessário informar um id, assim: "/notas/2/baixar" 2º - Herança: Da mesma forma que é preciso informar na model quando uma tabela depende da outra, assim: class Pessoa < ActiveRecord::Base;end class Telefone < ActiveRecord::Base; belongs_to Pessoa; end É necessário fazer suas relações nas rotas, assim: map.resources :pessoas do |pessoa| pessoa.resources :telefones end Ficando assim: --------------------------------------------------------------------------------------------------------------------------------------------- | Método | Rota | Chamada | -------------------------------------------------------------------------------

Aliando: Rails + Ajax

Ok, vamos a mais um post... Hoje sobre como aliar todo o poder da aplicação web, neste caso rails, com o poder da metodologia Ajax, neste caso o framework prototype. O que vamos fazer é criar um método e chamar e receber os dados via javascript. Ou em outras palavras, javascript com acesso ao banco de dados. Existe hoje muitos frameworks javascrit que facilitam o trabalho na hora de fazer requisições ajax, por exemplo: jquery, motools e no nosso caso prototype. Como o rails é mantido sobre a metodologia MVC , ou MVC2, ou arquitetura três camadas, iremos criar uma action na controller que será visualizada pela requisição javascript. Vamos lá então... É bem simples: Esta é a controller: class TestController < ApplicationController    def me_chama      render :text => "Hello, world"    end end Ok, agora vamos invocar este método através do javascript... < script >    function chama () {      url = '/test/me_chama'

Números Primos + MMC + MDC + Ruby

Segue abaixo um exemplo de implementação de gerador de Números Primos + MMC ( Mínimo Múltiplo Comum ) + MDC ( Máximo Divisor Comum ) em ruby. É um resultado de uma prova de lógica que um amigo meu teve que fazer em java. Colaborações prestimosas de Cirillo Ferreira. require 'Mathn' class Numeric def multiplos(ate = 500) (1..ate).to_a.map{|v| self*v} end def divisores(ate = 500) (1..ate).to_a.map{|v| v if (self%v == 0)}.compact end end module Math def self.mmc(*valor) compara( valor.inject([]){|h, i| h << i.multiplos} ).first end def self.mdc(*valor) compara( valor.inject([]){|h, i| h << i.divisores } ).last end def self.nmr_primos numeros_primos = [] (2..501).each{|i| numeros_primos << (2..i).detect{|j| j%j ==0 && i%j==0} } numeros_primos.uniq! end private def self.compara(arr) arr.inject(arr[0]){|ac, i| ac & i} end end Math::mmc(3,5,8) => 120 Math::mmc(3,5,8,9) => 360 Os métodos mmc e mdc são métodos que aceitam parâmetros indetermi