¿Cuál es la diferencia entre form_for y form_tag? ¿Hay algo diferente para form_remote_for y form_remote_tag?Diferencia entre form_for, form_tag?
Respuesta
Se podría utilizar form_for para un modelo específico,
<% form_for @person do |f| %> # you can use f here
First name: <%= f.text_field :first_name %>
Last name : <%= f.text_field :last_name %>
<% end %>
form_tag crear la forma básica,
<%= form_tag '/person' do -%>
<%= text_field_tag "person", "first_name" %>
<% end -%>
form_for
prefiere, como primer arg, un objeto activerecord; permite realizar fácilmente una forma de crear o editar (para usarlo en un "nuevo" punto de vista se debe crear una instancia vacía en el controlador, como:
def new
@foo = Foo.new
end
También pasa una variable de formulario al bloque, por lo que usted no tiene que repetir el nombre del modelo en el propio formulario. que es la forma preferida para escribir una forma relacionada modelo.
form_tag
sólo crea una etiqueta de formulario (y por supuesto en silencio preparar un campo oculto antiforgery, como form_for
) ; se utiliza mejor para formularios que no sean modelos (de hecho, solo lo uso para formularios de búsqueda simples o similares).
De manera similar, form_remote_for
y form_remote_tag
son adecuados para formularios relacionados con modelos y no para formularios relacionados con modelos, respectivamente, pero, en lugar de finalizar en un método http estándar (GET, POST ...), llaman a un método ajax.
Todo esto y mucho más están disponibles para que usted pueda disfrutar de las páginas de referencia FormHelper y PrototypeHelper.
EDITAR 2012-07-13
Prototype
se ha eliminado de rails
hace mucho tiempo, y las formas remotas han cambiado por completo. Consulte el primer enlace, con referencia a la opción :remote
de form_for
y form_tag
.
Estos deben ser similares:
<% form_for @person do |f| %>
<%= f.text_field :name %>
<% end %>
y:
<%= form_tag '/person' do %>
<%= text_field_tag "person[name]" %>
<% end %>
Si desea enviar los mismos parámetros al controlador, tendrá que definir esto explícitamente.
Corto y preciso. [Hermosa expiación] –
- 1. Diferencia entre form_for y form_tag?
- 2. Diferencia entre: modelo y @model en form_for?
- 3. Rieles form_tag no muestra
- 4. ¿Form_tag funciona con Simple_form?
- 5. HAML: dilema form_tag
- 6. modelo virtual y form_for (o Formtastic)
- 7. Ruby on Rails: ¿Son equivalentes "form_for (: product, ...)" y "form_for (@product, ...)"?
- 8. Usando la etiqueta form_for con el método get
- 9. Usando select_month en form_for
- 10. carriles form_for styling
- 11. STI y form_for problem
- 12. Rails form_for with collection_select
- 13. form_for with datetime_select
- 14. form_for con recursos anidados
- 15. ¿Cómo agregar un id. Html a una etiqueta form_for en rieles?
- 16. cómo agregar html id a rails form_tag
- 17. Diferencia entre dos NSDates
- 18. MySQL: diferencia entre ', `,' y"
- 19. 'Diferencia' entre dos cuaterniones
- 20. diferencia entre \ ry \ n
- 21. Diferencia entre objeto y *?
- 22. Diferencia entre. y #
- 23. ¿Diferencia entre == y caso?
- 24. diferencia entre dos matrices
- 25. La diferencia entre $ * y $ @
- 26. Diferencia entre Expression.Call overloads?
- 27. Diferencia entre & y &
- 28. Diferencia entre dos mapas
- 29. método indefinido "_index_path" form_for problem
- 30. form_for y ámbitos, carriles 3
El segundo enlace no funciona. – WowBow
@WowBow tienes razón; después de todo, esta respuesta es bastante antigua, y Prototype ha sido eliminada de los raíles hace mucho tiempo. Editaré mi respuesta. – giorgian
¿Qué significa que 'form_for'" prefiera "un objeto ActiveRecord? – shiggity