tutorial rails que ejemplos descargar curso caracteristicas ruby-on-rails ruby-on-rails-3

ruby on rails - rails - Rieles en busca de plantilla para solicitudes JSON



ruby on rails tutorial (2)

Intentarías con /workouts.json

En mis routes.rb tengo:

resources :workouts

En mi controlador de entrenamientos tengo:

def show respond_to do |format| format.html format.json { render :json => "Success" } end end

Pero cuando voy a /workouts/1.json, recibo lo siguiente:

Falta la plantilla

Faltan plantillas de entrenamiento / show, application / show con {: locale => [: en],: format = = [: json],: handlers => [: erb,: builder,: coffee]}. Se buscó en: * "/ home / rails / app / views"

Lo que parece mostrar que el formato es el que debería ser, pero sigue buscando una vista. Este mismo código funciona en otros controladores con configuraciones idénticas muy bien. Además, ir a / workouts / 1 para la vista html parece funcionar bien, aunque también representa la vista html correctamente cuando se elimina el format.html .


Mira el código fuente de render

elsif options.include?(:json) json = options[:json] json = ActiveSupport::JSON.encode(json) unless json.is_a?(String) json = "#{options[:callback]}(#{json})" unless options[:callback].blank? response.content_type ||= Mime::JSON render_for_text(json, options[:status])

Preste atención a la tercera línea. Si el valor de :json es una cadena, el render no llamará a to_json automáticamente para este valor.

Por lo tanto, el valor permanece como cadena y el render continuará en la plantilla de búsqueda.

Para solucionarlo, suministre un hash válido incluso para propósitos de prueba.

format.json { render :json => {:message => "Success"} }