ruby-on-rails - unknownformat - respond_to rails
carriles response_to format.js API (2)
Creo que esta era la URL que estabas buscando:
https://apidock.com/rails/ActionController/MimeResponds/InstanceMethods/respond_to
Esto también puede ser útil para algunos, para ver que en realidad puedes representar js directamente dentro del método format.js, si, por ejemplo, solo tienes una declaración js pequeña de una línea que deseas devolver, y no quieres diferir a un archivo RJS como controller_action_name.js.erb
:
respond_to do |format|
format.html { redirect_to new_admin_session_path }
format.js { render :js => "window.location=''#{ new_admin_session_path }''" }
end
Soy un experimentado desarrollador de JAVA y C ++ y estoy tratando de entender cómo funcionan los rieles.
Tengo este código a continuación:
respond_to do |format|
if @line_item.save
format.html { redirect_to store_url }
format.js { render :json => @line_item, :mime_type => Mime::Type.lookup(''application/json''),
:callback => ''javascriptFunction'' }
y he estado buscando en la API que define lo que puedo pasar dentro de format.js {}
pero no pude encontrar ...
en primer lugar: ¿qué tipo de declaración es format.js
, es esa una variable?
y lo más importante: ¿qué atributos puedo pasar a format.js {}? puedes pasar el enlace directo? He buscado en el http://api.rubyonrails.org/
respond_to do |format|
format.js # actually means: if the client ask for js -> return file.js
end
js
aquí especifica un tipo mime que el método del controlador enviaría como respuesta;
Tipos de mime de Rails predeterminados .
Si lo intentas también con format.yaml
:
respond_to do |format|
format.js
format.yaml
end
eso significará que su controlador devolverá yml
o js
según lo que pida el cliente;
{}
en términos de rubí es un bloque ; Si no especifica ningún riel, intentará procesar un archivo predeterminado desde la aplicación / vistas / [nombre del controlador] / [nombre del método del controlador]. [Html / js / ...]
# app/controllers/some_controller.rb
def hello
respond_to do |format|
format.js
end
end
buscará /app/views/some/hello.js.erb
; // al menos en Rails v. 2.3.
Si especifica el bloque:
respond_to do |format|
# that will mean to send a javascript code to client-side;
format.js { render
# raw javascript to be executed on client-side
"alert(''Hello Rails'');",
# send HTTP response code on header
:status => 404, # page not found
# load /app/views/your-controller/different_action.js.erb
:action => "different_action",
# send json file with @line_item variable as json
:json => @line_item,
:file => filename,
:text => "OK",
# the :location option to set the HTTP Location header
:location => path_to_controller_method_url(argument)
}
end