Posts Tagged ‘programação’

permalink_fu e RESTful

Tuesday, September 16th, 2008

Querendo fazer funcionar o permalink_fu, acabei topando com esse post: http://www.seoonrails.com/even-better-looking-urls-with-permalink_fu

Basicamente, ele diz que eu preciso adicionar, no meu modelo o seguinte:

  1. class Post < ActiveRecord::Base
  2.   has_permalink :title
  3.  
  4.   def to_param
  5.     permalink
  6.   end
  7. end

Em minhas rotas:

  1. map.connect ‘article/:permalink’, :controller => ‘article’, :action => ‘view’

E em minhas views:

  1. link_to "View #{article.title}", {:controller => ‘designer’, :action => ‘view’, :permalink => article.permalink}

O problema é: o código que eu tenho que colocar nas minhas rotas e nas minhas views não usa aquela praticidade do link_to “Text”, my_url_path(@stuff).

A solução que eu estou usando, agora, é deixando minhas rotas na maneira padrão do Rails 2.x e nas minhas views usando um simples: link_to “Text”, post_url(@post.permalink).

Limpo. :-)

Documentação do Rails

Thursday, June 19th, 2008

Enfim o que eu precisava para começar, definitivamente, a programar em Ruby On Rails: http://rails-doc.org

Claro que se surgir uma ferramenta parecida para Ruby, as coisas ficam perfeitas. Mas enquanto isso não acontece, vou de irb e vou programando como programo em PHP/C/Perl… :-)

Parabéns aos idealizadores!

Ruby Enterprise Edition

Friday, June 13th, 2008

Hoje tomei vergonha na cara e instalei o Ruby Enterprise Edition (podia abreviar para Ruby EE, mas falar o nome inteiro dá um ar de importância a este post) no meu Gentoo.

Então ok. Instalei o mod_rails e comecei a brincar. É um negócio interessante e promissor. Então resolvi instalar o Ruby Enterprise Edition para ver se a história dos 33% é verdade mesmo ou se é só história e me deparei com esse erro:

/opt/ruby-enterprise-1.8.6-20080507/bin/ruby: no such file to load -- auto_gem (LoadError)

Gem faltando? OK. Basta abrir o código e descobrir qual é a Gem, certo? Não. O código é bem enxuto e não parecia ter nada faltando. E eu estava sem paciência de ler (:-) ). Então basta recorrer ao Google.

Caí nesse site: http://fatpenguinblog.com/scott-rippee/usrbinruby-no-such-file-to-load-auto_gem-loaderror/

E adaptei minha linha de comando:

RUBYOPT="" ./ruby-enterprise-1.8.6-20080507/installer

Agora vou lá conferir a história dos 33%… :-)

http://www.rubyenterpriseedition.com/comparisons.html

P.S.: Sim. Eu sei que a história dos 33% é apenas para efeitos de comparação e cada caso é um caso. E eu sei também que Rails não escala… :-)

resource_controller x redirect_to

Monday, March 17th, 2008

Continuando minha eterna aventura com Ruby on Rails ontem, me deparei querendo usar o método redirect_to junto com o plugin resource_controller, do James Golick.

Bem, o que poderia dar errado? Aparentemente nada. Mas eis que surge um erro:

undefined method `redirect_to' for #<resourcecontroller::failableactionoptions:0x4b05b90>

“Sem problemas”, eu pensei. O que, provavelmente, estava acontecendo, era que o meu controller, de alguma forma, estava herdando apenas de ResourceController::Base e esqueceu do ActionController::Base. Logo, tudo o que eu tenho que fazer, é arrumar a herança e continuar usando o plugin. Certo? É… Digamos que sim…

De acordo com a documentação do plugin, bastava chamar o método resource_controller que ele se encarregaria de todo o trabalho sujo por mim. OK. Vamos lá:

  1. class CommentsController < ApplicationController
  2.   resource_controller
  3.  
  4.   belongs_to :post, :article, :photo
  5.  
  6.   create do
  7.     redirect_to :back
  8.   end
  9. end

Não tem como dar erro, né? Eu também achei…

undefined method `redirect_to' for ActionController::Base:Class

Perguntando na rubyonrails-talk, eu não consegui muita coisa. Por isso, fui além da terceira página do Google e encontrei a seguinte discussão:

http://groups.google.com/group/resource_controller/browse_thread/thread/b4657a4109d6eccd

Agora foi só mudar meu código:

  1. class CommentsController < ApplicationController
  2.   resource_controller
  3.  
  4.   belongs_to :post, :article, :photo
  5.  
  6.   create do
  7.     wants.html { redirect_to :back }
  8.   end
  9. end

E tudo funcionou perfeitamente.
O que mais me causou estranhamento, foi o fato de que a documentação não cita (pelo menos, não claramente para mim) esse porém, e não há (até onde procurei) nenhuma documentação online.

E, infelizmente, eu não posso fazer nada enquanto não dominar o plugin… :-(