[rails] Renderizando uma view sem uma action específica

Simples assim:

  def method_missing( method_name )
    begin
      render :template => 'my_controller/' + method_name
    rescue ActionView::MissingTemplate => e
      render :text => "Ops, essa view não existe! (#{method_name})", :status => 404
    end
  end

Viva o method_missing! :D

“Plus a mais”: Uma forma alternativa está no comentário abaixo.

3 comentários »

  1. Nando Vieira disse,

    07/01/2009 @ 20:56

    Tem um jeito melhor de fazer isso, usando o rescue_from. Se liga nesse exemplo: http://pastie.org/355200 ~ muuuito mais elegante ;)

  2. Nando Vieira disse,

    07/01/2009 @ 21:12

    Ao dizer “de fazer isso”, quis dizer o rescue da exceção. Aí, o method_missing pode ser só o render :template ;)

  3. Klaus Paiva disse,

    08/01/2009 @ 07:47

    Show Ferdinando! Não conhecia esse rescue_from.
    Ficou bem legal assim, valeu! :D

Deixe seu comentário

* campos obrigatórios