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.
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".
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.