rails def ruby-on-rails ruby-on-rails-3 scaffolding

ruby-on-rails - def - set layout rails



Saltar formato JSON en rieles generar andamio. (4)

Cuando generas un andamio de rieles usando un comando como rails g scaffold Thing hay alguna manera de evitar que te moleste

respond_to do |format| format.html # index.html.erb format.json { render json: @things } end

¿Cosas en tu control?

Estoy tratando de enseñar una clase en Rails y me gustaría comenzar haciendo que generen un andamio, pero con todo el formato de json es mucho más complicado de lo que debe ser. Sería mucho más feliz si pudieran generar un andamio que creara un controlador como este:

class ThingsController < ApplicationController def index @things = Thing.all end def show @thing = Thing.find(params[:id]) end def new @thing = Thing.new end def edit @thing = Thing.find(params[:id]) end def create @thing = Thing.new(params[:thing]) if @thing.save redirect_to @thing, notice: ''Thing was successfully created.'' else render: "new" end end end def update @thing = Thing.find(params[:id]) if @thing.update_attributes(params[:thing]) redirect_to @thing, notice: ''Thing was successfully updated.'' else render: "edit" end end end def destroy @thing = Thing.find(params[:id]) @thing.destroy redirect_to things_url end end


Comente fuera de gema jbuilder en su Gemfile y respond_to bloques no se generarán.


Creo que te estarías perdiendo una oportunidad. Por un lado, estarías enseñando Rails no estándar, por lo que tus estudiantes podrían confundirse cuando vean la versión normal en sus propias instalaciones.

Más importante aún, los controladores están formateados de esa manera por una razón. Rails pone énfasis en REST, que fomenta el acceso a los recursos a través de múltiples formatos de datos. Muchas aplicaciones modernas están restando énfasis a las respuestas html / erb más lentas del servidor en favor de las API de json. Me doy cuenta de que esto es poco más de un año después de tu OP, y tienes un tiempo limitado en clase, solo agregando algunos pensamientos para cualquiera que pueda pasar. Creo que podrías mover tu mano sobre la respuesta y decirles que te está preparando para algunas posibilidades futuras.


Notará que la respuesta JSON está codificada directamente en la plantilla para el generador de rieles aquí:

https://github.com/rails/rails/blob/master/railties/lib/rails/generators/rails/scaffold_controller/templates/controller.rb

Creo que algo a tener en cuenta es que el generador de andamios está realmente destinado a ilustrar y, además, a informar sobre el funcionamiento de la pila de rieles, ¡muestra cómo se puede editar el controlador para proporcionar muchos formatos diferentes para satisfacer sus necesidades!