Mostrando postagens com marcador ruby on rails. Mostrar todas as postagens
Mostrando postagens com marcador ruby on rails. Mostrar todas as postagens

ERROR: Error installing mechanize



Olá pessoal, ao tentar instalar a gem mechanize me deparei com o seguinte erro:

jqn@jqn-laptop:~$ sudo gem install mechanize
[sudo] password for jqn:
Building native extensions. This could take a while...
ERROR: Error installing mechanize:
ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb
checking for iconv.h in /opt/local/include/,/opt/local/include/libxml2,/opt/local/include,/opt/local
/include,/opt/local/include/libxml2,/usr/local/include,/usr/local/include/libxml2,/
usr/include,/usr/include/libxml2,/usr/include,/usr/include/libxml2... yes
checking for libxml/parser.h in /opt/local/include/,/opt/local/include/libxml2,/opt/local/include,/opt/local/include,
/opt/local/include/libxml2,/usr/local/include,/usr/local/include/libxml2,/usr
/include,/usr/include/libxml2,/usr/include,/usr/include/libxml2... no
libxml2 is missing. try 'port install libxml2' or 'yum install libxml2-devel'
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.

Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/bin/ruby1.8
--with-iconv-dir
--without-iconv-dir
--with-iconv-include
--without-iconv-include=${iconv-dir}/include
--with-iconv-lib
--without-iconv-lib=${iconv-dir}/lib
--with-xml2-dir
--without-xml2-dir
--with-xml2-include
--without-xml2-include=${xml2-dir}/include
--with-xml2-lib
--without-xml2-lib=${xml2-dir}/lib
--with-xslt-dir
--without-xslt-dir
--with-xslt-include
--without-xslt-include=${xslt-dir}/include
--with-xslt-lib
--without-xslt-lib=${xslt-dir}/lib


Gem files will remain installed in /var/lib/gems/1.8/gems/nokogiri-1.4.1 for inspection.
Results logged to /var/lib/gems/1.8/gems/nokogiri-1.4.1/ext/nokogiri/gem_make.out


Para resolver basta executar o comando abaixo:

$ sudo apt-get install libxslt1-dev


e tudo deve se acertar ao tentar instalar a gem novamente!

Até

Leia Mais!

Parâmetros para formatar data e hora

Há várias formas de mostrarmos a hora e a data em Ruby on Rails, para arrumarmos do nosso jeito devemos utilizar alguns parâmetros, mas são muitos, então é difícil de memorizá-los, por isso estou listando os parâmetros aqui e a forma de utilizá-los também:


%a The abbreviated weekday name (“Sun'’)
%A The full weekday name (“Sunday'’)
%b The abbreviated month name (“Jan'’)
%B The full month name (“January'’)
%c The preferred local date and time representation
%d Day of the month (01..31)
%H Hour of the day, 24-hour clock (00..23)
%I Hour of the day, 12-hour clock (01..12)
%j Day of the year (001..366)
%m Month of the year (01..12)
%M Minute of the hour (00..59)
%p Meridian indicator (“AM'’ or “PM'’)
%S Second of the minute (00..60)
%U Week number of the current year, starting with the first Sunday as the first day of the first week (00..53)
%W Week number of the current year, starting with the first Monday as the first day of the first week (00..53)
%w Day of the week (Sunday is 0, 0..6)
%x Preferred representation for the date alone, no time
%X Preferred representation for the time alone, no date
%y Year without a century (00..99)
%Y Year with century
%Z Time zone name
%% Literal “%'’ character

Exemplo de utilização:

<%=h Date.today.strftime("%A, %d de %B de %Y") %>
A data será mostrada assim:

Sexta-Feira, 02 de Outubro de 2009


Espero estar ajudando a todos.

Att,

Rafael Barcellos Leia Mais!

ERROR: Error installing rails: invalid gem format for /var/lib/gems/1.8/cache/rake-0.8.7.gem

Voltando a cair dentro na programação, consequentemente voltei a me deparar com erros.

Desta vez ao tentar instalar o rails ( usando $ sudo gem install rails --include-dependecies ) em uma outra máquina o erro que foi acusado foi o seguinte.

ERROR: Error installing rails: invalid gem format for /var/lib/gems/1.8/cache/rake-0.8.7.gem
Para solucionar o problema remova o arquivo rake-0.8.7.gem

$ sudo rm /var/lib/gems/1.8/cache/rake-0.8.7.gem

Depois de remove-lo, tente instalar o rails novamente, e deve funcionar.

Gostaria de lembrar que esse erro tambem pode acontecer com outros arquivos, que não sejam o rake-0.8.7.gem, como por exemplo os arquivos: actionpack-2.1.0.gem ; activerecord-2.0.2.gem ...

Espero ter ajudado! Leia Mais!

Ruby on Rails: Modificando tela de acesso negado Acl9

Post rápido hoje. Quando implementamos o acl9 para gerenciar 'roles' no sistema nos deparamos com a tela abaixo quando usamos um usuário sem permissão para executar uma ação dentro do sistema.



Para resolver isso é muito simples.
Basta adicionar o codigo abaixo no /controllers/application_controler.rb:

rescue_from 'Acl9::AccessDenied', :with => :negar_acesso

def negar_acesso
if current_user
render :template => 'acesso_negado'
else
flash[:notice] = 'Acesso negado. Você precisa estar logado.'
redirect_to login_path
end
end

Agora basta criar o arquivo acesso_negado.html.erb na raiz das views (/view/acesso_negado.html.erb) e adicionar uma mensagem de erro personalizada.

Até! Leia Mais!

Ruby on Rails: Implementando AutoFill com Jquery




Olá pessoal, hoje vou compartilhar um método que pode ser bobo para usuários avançados mais acho interessante por quase não existir material na internet.
Precisei desenvolver esse script para implementar uma função autofill em um sistema que desenvolvo para UENF (Universidade Estadual Norte Fluminense).

Todo mundo já usou sites com preenchimento automatico de campos.
Exemplo clássico deste recurso é quando se coloca o CEP em um formulário de endereço, e os campos contendo rua, bairro, cidade, são automaticamente preenchidos (AutoFill).

Neste exemplo uso a biblioteca JavaScript Jquery.

Vamos lá:

Criando uma aplicação teste em Ruby on Rails

Começamos criando uma aplicação "teste" para implementar o autofill.

$ rails autofill -d postgresql


* perceba que eu uso o postgresql como banco de dados, use o banco que esteja acostumado

Feito isso vamos geral um scaffold rapidamente.

$ cd autofill
$ script/generate scaffold Cadastro nome:string telefone:string email:string


Criar banco de dados e rodar a migração
Abra o arquivo config/database.yml e altere os dados de login do seu banco de dados.
Depois disso execute os comandos:

$ rake db:create
$ rake db:migrate


Com essa parte pronta podemos começar a implementar.

Abrindo a view new.html.erb (apps/views/cadastros/new.html.erb)
Insira o trecho abaixo antes da tag <% form_for(@cadastro) do |f| %>

Trecho:
<button id="autofill" name="autofill">Autofill?</button>
<div id="pegardados_autofill" style="display: none;">

<br>ID: <input id="id_autofill" name="id_autofill"> </input>
<button id="load_autofill" name="load_autofill">carregar</button>
</div>
<div id="msg_autofill" style="display: none;">
</div>

Screenshot:


Ajustando o controller (apps/controllers/cadastros_controller.rb)
Como este é apenas um exemplo e normalmente em exemplos temos que simular uma fonte de dados para fazer o autofill, vamos pegar dados do próprio cadastro, integrando com JSON.
Muito simples.

No controller ative o formato JSON no método show:

def show
@cadastro = Cadastro.find(params[:id])

respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @cadastro }
format.json { render :json => @cadastro } // ADICIONE ESTA LINHA
end
end


Baixando Jquery e criando o arquivo autofill.js

Se você não tem jquery em sua aplicação faça isto:
Baixe o arquivo jquery-1.3.2.js e coloque na pasta da sua aplicação rails
$ mv jquery-1.3.2.js /pathdasuaaplicação/public/javascripts/jquery-1.3.2.js


Crie dentro desta mesma pasta (../public/javascripts/) um arquivo com nome autofill.js e coloque o seguinte conteudo:

$(function(){ // FUNÇÃO PARA EXIBIR A DIV
$("#autofill")
.click(function(){
$("#pegardados_autofill").show(1300);

});
});

$(function(){
$("#load_autofill")
.click(function(){
var id = $('#id_autofill').val();
if(id == ""){
alert("Campo em branco, coloque o id.")
}
$.getJSON("http://localhost:3000/cadastros/" + id + ".json", function(data){ //pegando dados via JSON

$('#cadastro_nome').val(data.cadastro.nome);// completando os campos
$('#cadastro_telefone').val(data.cadastro.local);
$('#cadastro_email').val(data.cadastro.preco);

$("#msg_autofill").html("Dados carregados com sucesso..");

$("#msg_autofill").show(1100);
$("#msg_autofill").fadeOut(1800);

});
});
})


Finalizando
Seguindo todos esses passos, resta somente colocar a biblioteca no arquivo new.html.erb e o autofill.js

Abra new.html.erb e adicione antes da tag <h1>....</h1>

<%= javascript_include_tag 'jquery' %>
<%= javascript_include_tag 'autofill' %>


Salve e rode o servidor

$ script/server


Testando

Como não temos nenhum cadastro, consequentemente não temos da onde efetuar o autofill.
Efetue um cadastro então:
http://localhost:3000/cadastros/new

Não clique no botão AutoFill? por enquanto, apenas preencha os campos com nome telefone e email.
Com o cadastro efetuado já temos o primeiro ID para testar o auto fill.

Retorne ao endereço http://localhost:3000/cadastros/new e agora sim clique no botão Autofill?
Uma div com efeito deverá surgir e no campos ID: coloque o id 1 , clique em carregar e veja o resultado!



Com esse exemplo acho que da para adaptar em qualquer situação.
depois posto a função usando XML como padrão de dados.

Até! Leia Mais!

Ambiente de Desenvolvimento Rails: Gedit + Gmate


Fala pessoal!!
Como todo programador Rails desmonetizado sonha em usar o Textmate (eu) trago uma solução bem fácil e extremamente explicada: um plugin para Gedit que aproxima-o do Textmate, o Gmate.
Com ele seu Gedit terá:
  • Console Embutido com possibilidade de varios terminais
  • Navegador de arquivos
  • Rails Hot Commands
  • Rails Hot Keys
  • Snapopen - abre arquivos rapidamente alá Textmate
  • TodoList
  • Bookmarks
  • Autocompletation
  • Syntax Highlight
  • E mais que eu posso estar esquecendo (#badblock)

Preview:


Instalação

$ sudo apt-get install gedit-plugins
Instalar gmate

$ git clone git://github.com/lexrupy/gmate.git

se aparecer git: command not found digite:

$ sudo apt-get install git-core
Extra:
Se você não tiver o git e não quiser instalar (programador rails geralmente precisa do git :] ) baixe o .deb http://cloud.github.com/downloads/lexrupy/gmate/gedit-gmate_0.9-ubuntu1_all.deb (somente para distros baseadas no debian) / baixe o tar.gz e descompacte http://juquinhaa.googlepages.com/gmate.taz.gz

# sanar as dependencias com esse comando:
$ sudo apt-get install python-pyinotify python-webkitgtk
# entre no diretorio
$ cd gmate
# instale
$ sh install.sh

Baixando o mterminal (Terminal embutido)
http://fazibear.googlepages.com/mterminal.tar.gz
Descompacte e copie os arquivos para a pasta /usr/lib/gedit-2/plugins/

Ativando e Configurando

Abra o Gedit e vá em Editar>Preferências>Plug-ins
Marque:
  • Advanced Bookmarks
  • Align
  • Auto Completation Plugin
  • Embedded Terminal
  • Gemini
  • HTML Tidy
  • Painel do navegador de arquivos
  • Quick Highlight Mode
  • Rails Extract partial
  • Rails File Loader
  • Rails Hot Commands
  • Rails HotKeys
  • Smart Ident
  • Snap open
  • TODO List
  • Trechos
  • Word completion

na aba Fontes e Cores escolha um tema que mais lhe agradar visualmente.

Para ativar o terminal aperte CTRL + F9
Para ativar o painel de navegação de arquivos use F9

Breve resumo das funcionalidades

Snap Open
Uso: CTRL + ALT + O
Abre arquivos rapidamente.
Rails HotKeys
Uso: CTRL + SHIFT + R e aperte logo em seguida F1. A lista com todos os comandos se abrirá.
CTRL + SHIFT + R e logo em seguida N abre o browser com endereço: http://localhost:3000/
Rails Hot Commands
Uso: CTRL + ALT + C e digite script. Logo abaixo uma lista vai aparecer contendo os comandos disponiveis.
Digite algum comando para executar rapidamente.
TODO List
Uso: CTRL + ALT + T abre uma janela contendo as tarefas a serem efetuadas, completas e etc.
Para usar basta em algum arquivo do projeto comentar assim:
Ex:
#TODO: lembrar aqui de implementar uma função tal.
Esse arquivo será listado na janela dos afazeres (CTRL + ALT + T)
Links:

Boa produtividade!
Até! Leia Mais!

Começando a programar: Ruby on Rails


Olá, interrompendo a seção de erros (afinal, as férias extendidas pela gripe suína servem para diminuir os erros encontrados :P), vou listar a seguir alguns tutoriais, link's da comunidade RoR (1º passo - acostume-se com o RoR, Ruby on Rails) e alguns pdfs que encontrei por ai!
Se você está lendo algo sobre RoR pela primeira vez aqui no blog certamente vai ler artigos onde todos indicam começar estudando a linguagem Ruby. Esse estudo é indicado digamos na segunda parte da programação com RoR, pois é nela que você pode precisar de coisas específicas e ai não tem jeito de usar automatizadores de códigos (scaffolds). Chega de papo, mas lembre-se de não sair por ai falando que está programando em uma linguagem nova "Ruby on Rails", pois Ruby é a linguagem e Rails é o framework utilizado!

Sobre o Ruby
Sobre o Rails
Livros
Blogs

Isso é um bom começo para iniciar no mundo RoR. Erros? Procure no blog!
Se você tem algum link e queira compartilhar, poste no comentário que eu junto na lista. Leia Mais!

Erro: Rake: undefined method 'reenable' for [environment']>:Rake::Task

Ao rodar o comando rake db:migrate me deparei com este erro Rake: undefined method 'reenable' for [environment']>:Rake::Task.
Rodrigo Manhães do blog SacodeCoisas postou sobre este problema, mais aqui segue o passo a passo.

Causa: O rake que vem instalado no Sistema Operacional provavelmente com uma versão mais antiga que a instalada com o GEM.

Solução: Desinstalar o rake do S.O.

Remover o rake:
sudo aptitude remove rake


Instalar o rake novo pelo gem:
sudo gem install rake


Pode acontecer(quase sempre, pelo menos no Ubuntu 9.04) que o link simbolico ruby seja removido junto com o rake.
Crie novamente o link simbolico para o ruby:
ln -s /usr/bin/ruby1.8 /usr/bin/ruby


Crie também o link simbolico para o rake novo:
ln -s /var/lib/gems/1.8/gems/rake-0.8.7/bin/rake /usr/bin/rake


Ps: até a edição deste post a ultima versão disponivel do rake era a 0.8.7, caso sua versão seja superior substitua pela sua versão.
Leia Mais!

Ruby on Rails: Radio Button

Se está a procura de como colocar um radio button em sua aplicação ruby on rails use o exemplo abaixo:

<%= f.radio_button :nomedocampo, "Valor"%>Label


onde "Valor" => é o dado que ficará armazenado no BD
Label => é o texto em exibição na página.

Simples como ruby on rails! Leia Mais!

Rails -v : command not found

Um problema muito comum quando se instala rails através do RubyGems é:

servidorgsi:/home/projetos# rails -v
-bash: rails: command not found


Para resolver este probleminha basta executar o comando:

$ export PATH=$PATH:/var/lib/gems/1.8/bin

Apos isso:

servidorgsi:/home/projetos# rails -v
Rails 2.3.3


Edit:
Se ao reiniciar o pc, a variável ambiente não for reconhecida novamente, basta editar o arquivo

$ nano /etc/profile


e coloque o comando acima ultima linha.
Feito isso command not found jamais. Leia Mais!