Posts Tagged ‘resource_controller’

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… :-(