No estoy seguro si esto es una buena práctica o no, pero generalmente lo que quiero hacer es dejar las rutas abiertas para responder_a (es decir, al agregar .:format
al final), pero solo usarlo en los controladores cuando es necesario
Ejemplo:
routes.rb
map.connect :controller/:action/:id.:format
model_controller.rb
# Return a collection of model objects
def action_with_multiple_responses
@models = Model.all
respond_to do |format|
format.html #=> action_with_multiple_responses.html
format.xml { render :xml => @models }
end
end
# Return the first model object
def action_with_one_response
@model = Model.first
end
De esa manera, no son desordenados en el método de action_with_one_response
con un bloque innecesaria , pero también te has configurado bastante bien si quieres algún día devolver el objeto en XML, JSON, etc.
no había pensado en la idea portero, agradable. –
es que el caso, que en mi ejemplo anterior una solicitud (para html, sin .js) obtendría un 406 y solo el registro JSON sin el encabezado correcto? si es así, eso es enorme ... – tfwright
Sí, con su bloque 'responds_to' arriba, una solicitud para .xml, .html, etc. debería devolver' 406 Not Acceptable'. – Ben