application_controller.rb:
def index
begin
if request.post?
create
elsif request.get?
read
elsif request.put?
update
elsif request.delete?
delete
end
rescue NameError
respond_to do |format|
format.html {render :text => "<h1>Forbidden</h1>", :status => 403}
end
end
end
E no arquivo routes.rb:
map.connect ':controller/:id' # map.connect ':controller/:action/:id'
Como funciona?
Uma aplicaçao Rails RESTful funciona, basicamente, utilizando o método HTTP como verbo e a URI como substantivo.
Ao invés de algo do tipo http://application:3000/user/view/1, com REST você usa http://application:3000/user/1 para pegar os dados, atualizar ou apagar, mudando apenas o método HTTP da chamada.
Porém, por padrão, o Rails entende as requisições como sendo /controller/action/id, por isso a alteração no arquivo routes.rb, para fazer com que o segundo parâmetro seja o ID, já que quem define a action é o próprio método HTTP.
Dependendo do método utilizado, será executada uma action padronizada que será escrita no seu próprio controller, usando o conceito de sobrescrita de métodos. Caso você não escreva qualquer uma das actions, será exibida uma mensagem de erro padrão, permitindo que você foque somente no desenvolvimento do que for necessário.
Escrito por Developer