Jaka jest różnica między form_for a form_tag? Czy jest coś innego dla form_remote_for i form_remote_tag?Różnica między form_for, form_tag?
Odpowiedz
byłoby użyć form_for konkretnego modelu,
<% 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 tworzyć formę podstawową,
<%= form_tag '/person' do -%>
<%= text_field_tag "person", "first_name" %>
<% end -%>
form_for
preferuje, jako swój pierwszy argument, obiekt aktywnego rekordu; pozwala to łatwo zrobić utworzyć lub edytować formę (by użyć go w „nowej” widzenia należy utworzyć pusty instancji w sterowniku, jak:
def new
@foo = Foo.new
end
przechodzi również tworzą zmienną do bloku, tak że nie trzeba powtarzać nazwę modelu w samej formie. jest to preferowany sposób napisać wzoru formularza powiązane.
form_tag
właśnie tworzy znaki formularz (i oczywiście po cichu przygotowuje ukryte pole zabezpieczającym, jak form_for
) , jest najlepiej używany do formularzy niemodelowych (w rzeczywistości używam go tylko do prostych formularzy wyszukiwania itp.).
Podobnie, i form_remote_tag
są odpowiednie dla form powiązanych z modelem, a nie z odpowiednimi modelami, ale zamiast wywoływania standardowej metody http (GET, POST ...), wywołują metodę ajaxową.
Wszystko to i wiele więcej są dostępne, aby cieszyć się w kartach referencyjnych FormHelper i PrototypeHelper.
EDIT 2012-07-13
Prototype
została usunięta z rails
dawno temu, a zdalne formy zostały całkowicie zmienione. Proszę odnieść się do pierwszego linku, z reguard do opcji :remote
zarówno z form_for
i form_tag
.
te powinny być podobne:
<% form_for @person do |f| %>
<%= f.text_field :name %>
<% end %>
oraz:
<%= form_tag '/person' do %>
<%= text_field_tag "person[name]" %>
<% end %>
Jeśli chcesz przesłać te same parametry do kontrolera, musisz to jawnie zdefiniować.
Krótki i precyzyjny. [Piękna ekspiacja] –
- 1. form_for i form_tag, kiedy użyć?
- 2. Parametry form_tag w zagnieżdżonej mieszance
- 3. szyny form_tag ścieżka URL
- 4. Jak dodać identyfikator html do tagu form_for w szynach?
- 5. Szyny form_tag nie są wyświetlane
- 6. Czy form_tag działa z Simple_form?
- 7. Ruby on Rails: Czy odpowiednik "form_for (: product, ...)" i "form_for (@product, ...)"?
- 8. form_for z datetime_select
- 9. form_for nie pokazuje się
- 10. STI i form_for problem
- 11. Szyny: form_for namespaced resource
- 12. Jak używać form_tag z poziomu pomocnika?
- 13. Szyny formularz form_tag - z nieaktywnym modelem rekordów
- 14. Różnica między przeciążeniami Expression.Call?
- 15. Różnica między konwersji ciągów
- 16. Różnica między definicją słownika
- 17. Różnica między unwrapObservable i()
- 18. Różnica między "**/* /" i "** /"?
- 19. Różnica między dwiema tablicami
- 20. Różnica między Q.defer()() Obietnicy
- 21. Różnica między | = i^= css
- 22. Różnica między obiektem a *?
- 23. Composer.phar różnica między | i ||
- 24. Różnica między jquery a $
- 25. Różnica między "% ~ dp0" i ". \"?
- 26. Różnica między kodowaniami UTF?
- 27. Różnica między ". +" I ". +?"
- 28. MySQL: Różnica między ",", "i"
- 29. Różnica między numpy.logical_i and &
- 30. Różnica kręgosłupa Różnica między CompositeView i CollectionView?
Drugi link nie działa. – WowBow
@WowBow masz rację; w końcu ta odpowiedź jest dość stara, a prototyp został usunięty z szyn już dawno temu. Będę edytować moją odpowiedź. – giorgian
Co to znaczy, że 'form_for'" preferuje "obiekt ActiveRecord? – shiggity