with text_field tag rails method form_with form fields_for ruby-on-rails ruby-on-rails-3 form-for

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