ruby on rails - text_field - Diferencias de RoR entre: url,: action,: method en form_for
nested form rails (3)
Puede haber respuestas en la documentación, pero parece que no encuentro buenas respuestas. Entonces, entre los tres: url,: action,: method, ¿cuáles son sus diferencias cuando se usan en form_for en Rails?
URL:
Url es la ruta donde deben ir los datos de su formulario. todo lo que escriba dentro del símbolo: url se considera como la ruta donde deben ir sus datos cuando hace clic en un botón de envío en el formulario.
Acción:
La acción es el método en su controlador, en su formulario_para @usuario (donde @usuario es un objeto del Modelo de usuario), si dice: acción => crear, a continuación, agrega los datos a la función ''crear'' del controlador de usuarios (def create). Mencionará esto dentro: url para indicar que los datos deben ir a la acción específica.
Método:
Es el método http, existen los métodos ''get'', ''post'', ''update'', ''patch'' y ''delete''. Puedes aprender sobre esto en google.
form_for se utiliza básicamente en el objeto. Por ejemplo:
<% form_for @person do |f| %>
...
<% end %>
Cuando haga clic en enviar, irá a la acción predeterminada como desde: nuevo a: crear,: editar =>: actualizar. Si desea especificar su propia acción, entonces tiene que usar: url y: el método se usa para forzar para publicar o obtener. Por ejemplo:
<% form_for @person :url => {:action => "my_action"}, :method => "post" do |f| %>
...
<% end %>
Diferencia entre :url
:action
y :method
: url
Si desea enviar su formulario para cualquier controlador en particular, cualquier acción en particular y desea pasar algún parámetro adicional (use la acción que define en el controlador que usted pasa en el controlador)
por ejemplo
<%= form_for @post, :url => {:controller => "your-controller-name", :action => "your-action-name"} do |f| %>
En el código anterior, el formulario se envía a ese controlador (que se pasa en url) y se pasa a esa acción (se pasa a la acción). tomará por defecto la acción actual.
Supongamos ahora que quiere pasar un parámetro extra, por ejemplo.
form_for @post, :url => { :action => :update, :type => @type, :this => @currently_editing } do |f| ...
puedes pasar un parámetro extra como :type => @type
entonces :url
es La URL a la que se envía el formulario. Toma los mismos campos que pasas a url_for o link_to. En particular, puede pasar aquí una ruta con nombre directamente también.
:acción
form_for @post, :url => { :action => :update, :type => @type, :this => @currently_editing } do |f| ...
En el ejemplo anterior pasamos :action
si queremos enviar el formulario en otra acción, luego pasamos :action
y your-action-name
el formulario se publica en esa acción
:método
Se utiliza el método para el método que desea pasar para esa acción. Hay varios métodos como put
, post
, get
...
por ejemplo
form_for @post, :url => post_path(@post), :method => :put, ....
En el form_for
anterior, pasamos :method => :put
cuando se envía este formulario utilizará el método put