¿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. ¿Form_tag funciona con Simple_form?
- 4. HAML: dilema form_tag
- 5. Rieles form_tag no muestra
- 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. carriles form_for styling
- 10. form_for con recursos anidados
- 11. Usando select_month en form_for
- 12. STI y form_for problem
- 13. form_for with datetime_select
- 14. Rails form_for with collection_select
- 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 cuaterniones
- 18. MySQL: diferencia entre ', `,' y"
- 19. Diferencia entre. y #
- 20. diferencia entre \ ry \ n
- 21. Diferencia entre & y &
- 22. Diferencia entre dos NSDates
- 23. ¿Diferencia entre == y caso?
- 24. Diferencia entre Expression.Call overloads?
- 25. Diferencia entre objeto y *?
- 26. diferencia entre dos matrices
- 27. Diferencia entre dos mapas
- 28. La diferencia entre $ * y $ @
- 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