Manchmal brauchen wir Formular ohne Modell-Erstellung - zum Beispiel Suchfeld oder E-Mail, wo einige Anweisungen gesendet werden sollten. Was ist der beste Weg, um diese Formulare zu erstellen? Kann ich ein virtuelles Modell oder etwas Ähnliches erstellen? Ich möchte formtastic verwenden, aber nicht form_tag.virtuelles Modell und form_for (oder formtastic)
Antwort
Erstens benötigt Formtastic nicht in allen Fällen ein Modell, obwohl es sicherlich am besten funktioniert und weniger Code mit einem Modell erfordert.
Genau wie Rails eigenen eingebauten form_for
, können Sie ein Symbol anstelle eines Objekts als das erste Argument übergeben, und Formtastic wird das Formular erstellen und die Parameter basierend auf dem Symbol veröffentlichen. ZB:
<% semantic_form_for(:session) do |f| %>
...
<% end %>
Dies wird die Form Werte zur Verfügung zu Ihrem Controller als params[:session]
machen.
Zweitens, ein Modell bedeutet kein ActiveRecord Modell. Was ich meine, ist, dass Formtastic mit jeder Instanz einer Klasse arbeitet, die wie ein ActiveRecord-Modell quakt. Ein klassisches Beispiel dafür sind viele Leute verwenden Authlogic für die Authentifizierung mit Formtastic. Ein Teil Authlogic ist die Idee eines Usersession-Modell, das gut funktioniert:
Controller:
def index
@user_session = UserSession.new
end
Form:
<% semantic_form_for(@user_session) do |f| %>
<%= f.input :login %>
<%= f.input :password %>
<% end %>
Dies wird Ihre Formulardaten in Ihrem Controller als params[:user_session]
machen.
Es ist wirklich nicht so schwer, eine Modellinstanz zu erstellen, um die Sorgen Ihres Modells abzuschließen. Setzen Sie einfach die Methoden fort, die Formtastic erwartet, bis Sie es zum Laufen bringen!
Oder Sie erstellen einfach ein Formular mit form_for und lassen die Modellreferenz leer. zum Beispiel <% form_for "", :url=>some_url do |f| %>
<%= f.text_field "some_attribute" %>
<%= submit_tag "submit" %>
Sie die Werte durch ein einfaches params holen kann [: some_attribute] in dem Controller.
Ich würde mich über einen Kommentar zur Abstimmung unten freuen. – Sid
Ich würde sagen, das liegt daran, dass OP eine semantische Lösung sucht, idealerweise mit Formtastic, und Sie schlagen einen Rückschritt vor. –
default_language.rb
class DefaultLanguage attr_accessor :language_id end
foo_controller.rb
def index @default_language = params[:default_language] || Language.find_by_name("English") end
index.erb
<% semantic_form_for @default_language do |form| %> <% form.inputs :id => 'default_language' do %> <%= form.input :id, :as => :select, :collection => @languages, :required => false, :label => "Primary Language:", :include_blank => false %> <% end %> <% end %>
ich AJAX verwendet, um die Form zu schreiben, wenn der Wert geändert.
- 1. No-Modell Formtastic Formular
- 2. Unterschied zwischen: Modell und @Modell in Form_for?
- 3. Verwenden von form_for ohne Modell oder Änderungssatz
- 4. Formtastic verschachtelte Modell Formularfelder (Rails 3)
- 5. Azure-Websites und virtuelles Netzwerk
- 6. Wie validiere ich ein virtuelles Attribut in einem ActiveRecord-Modell?
- 7. Wie Checkboxen in formtastic
- 8. Formtastic wählen mit
- 9. form_for und Bereiche, Schienen 3
- 10. Formtastic Set Klasse und ID des Formulars
- 11. form_for mit datetime_select
- 12. Formtastic, eigene: als Eingabetyp
- 13. Formtastic Optionsfeld Ausgabe
- 14. form_for nicht angezeigt
- 15. form_for mit Nicht-Modellfeld
- 16. Activeadmin formtastic dynamische wählen
- 17. Zwingende url Helfer von form_for
- 18. form_for Problem
- 19. form_for und form_tag, wann welche verwenden?
- 20. Form_for helpers - Schienen
- 21. form_for Fehler in Schienen 3
- 22. Rails3 Fehler mit form_for Methode
- 23. Virtuelles Dateisystem in Perl
- 24. Ruby on Rails: Verwenden Sie form_for für ein Modell, und spiegeln Sie den Formularwert
- 25. Rails form_for Senden von Parametern an die Controller-Aktion und nicht Modell
- 26. Verwendung von Feldern aus einem Verband (has_many) Modell mit formtastic in Schienen
- 27. Zugriff auf Formularobjekt in Formtastic
- 28. Hat Windows nativ ein virtuelles oder temporäres Dateisystem?
- 29. Was ist ein virtuelles Dateisystem oder ein Dateisystem im Benutzerbereich?
- 30. Rails form_for delete
Ich akzeptiere deine Herausforderung!Hier finden Sie eine Nicht-ActiveRecord-Klasse, um die Probleme Ihres Modells zu beheben. http://dondoh.tumblr.com/post/4142258573/formtastic-without-activerecord – dondo