Notas sobre Ruby e Rails.

Render e redirecionamento.md 1.6KB

Render e redirecionamento

O Controlador tem o papel de definir qual ação vai ser tomada e no final ele deve renderizar um "View" ou redirecionar para uma URL ou outro controlador.

Exemplo

Class DemoController < ApplicationController

    def index
        render('hello')
    end

    def hello
        render(:text => 'Hello World!')
    end

    def other_hello
        redirect_to(:action => 'hello')`
    end

    def my_url
        redirect_to("http://jamesperet.com")
    end

end

Neste exemplo, ao entrar na página demo/index, o browser irá carregar a página demo/hello, mas a URL no browser continua sendo a do "index".

Ao entrar na página demo/hello diretamente, o rails retorna apenas o texto "Hello World".

Ao entrar na página demo/other_hello o browser é redirecionado para o controllador "hello", que vai apenas renderizar texto e a URL no browser será a da página "hello".

Sintaxe das funções para render e redirecionamento

  • Default: a página de template (view) tem o mesmo nome que a ação que está sendo chamada.
  • render (:action => 'hello') - função depreciada.
  • render (:template => 'demo/hello') - função depreciada.
  • render ('demo/hello') - Só é necessario especificar o controlador se ele for diferente do atual.
  • render ('hello') - Metodo correto para renderizar o template de um View.
  • render (:text => 'Hello World') - renderiza apenas texto.
  • redirect_to(:action => 'other_hello') - redireciona o browser para outro controlador.
  • redirect_to("http://jamesperet.com") - Redireciona o browser para uma URL externa.

voltar