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á:
-
class CommentsController < ApplicationController
-
resource_controller
-
-
belongs_to :post, :article, :photo
-
-
create do
-
redirect_to :back
-
end
-
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:
-
class CommentsController < ApplicationController
-
resource_controller
-
-
belongs_to :post, :article, :photo
-
-
create do
-
wants.html { redirect_to :back }
-
end
-
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… 