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.