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í:
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!
Solo clona el archivo
para usted
lib/rails/generators/rails/scaffold_controller/templates/controller.rb
Ruta en tu aplicación y personaliza lo que quieras. Además, puede escribir sus propios generadores para andamios ( http://guides.rubyonrails.org/generators.html ).