2012-05-03 13 views
5

Estoy usando Jbuilder (y también traté de usar Rabl) para representar json. Cuando trato de hacer que la plantilla de JBuilder en mi solicitud se hace la plantilla dentro del diseños/aplicación de archivo y devuelve HTML como JSON (véase la línea 'dentro de los diseños/aplicaciones'):HAML evita que los motores de plantilla procesen algo más que HTML

Rides controller on Github

Started GET "/random_photo.json" 
Processing by RidesController#random_photo as JSON 
>> Rendered rides/random_photo.json.jbuilder within layouts/application (0.3ms) 
    Rendered shared/_banners_in_corners.haml (3.0ms) 
    Rendered shared/_sign_in_and_out.haml (2.0ms) 
    Rendered layouts/_navigation.haml (7.3ms) 
Completed 200 OK in 156ms (Views: 120.7ms | ActiveRecord: 3.1ms) 

Sin embargo, cuando renderizo el json sin una plantilla, y hago una llamada render json: @ride.as_json, las cosas funcionan como se esperaba. Cuando creo una nueva aplicación y trato de hacer lo mismo, todo funciona como se esperaba, así:

Started GET "/posts/1.json" 
Processing by PostsController#show as JSON 
    Post Load (0.1ms) SELECT "posts".* FROM "posts" WHERE "posts"."id" = ? LIMIT 1 [["id", "1"]] 
    Rendered posts/show.json.jbuilder (0.6ms) 
Completed 200 OK in 20ms (Views: 19.2ms | ActiveRecord: 0.1ms) 

No sé lo que he hecho con mi solicitud de que no es la prestación de los plantillas correctamente. ¿Algunas ideas?

Respuesta

20

Gosh, me tomó alrededor de dos días descubrir que el problema que está causando este problema es mi diseño/archivo de aplicación que se llamó aplication.haml.

Ahora, cuando quería utilizar un motor de plantillas como constructor de xml o rable para JSON, que trataron de hacer que la plantilla dentro del campo de rendimiento en el archivo layouts/application.haml y html volviendo así como JSON

descubrí que el problema radica en el archivo de application.haml

nombrarlo resuelto el problema ... application.html.haml

+0

Wow que estaba teniendo el mismo problema! Estaba intentando implementar Jbuilder sin suerte, cambié a RABL y estaba teniendo el mismo programa. Cambiar el nombre de application.haml a application.html.haml hizo el truco! Gracias. – brent

+0

Upvoted. Esto resolvió mi problema y me tomó horas encontrar esta publicación. – robbie613

+0

Upvoted. Esto resolvió mi problema y me tomó horas encontrar esta publicación. – robbie613

Cuestiones relacionadas