Zum Beispiel habe ich ein product
Modell. Jedes Produkt hat eine type
mit dem Namen ProductType
. Jetzt möchte ich ein Produkt erstellen.Rails: form_for mit Submodell für Benutzer
Hier ist meine einfache Form ist mit schlank:
= form_for @product, url: product_path, :html => {:method => post} do f
= f.label :name
= f.text_field :name
= f.submit 'Create'
ich in dieser Form wollen, gibt es eine Dropdown-Liste, die alle Arten von Produkt (Last von ProductType
) auflisten und Benutzer auswählen können. Wie kann ich dies in Schienen zu tun (mit form_for
)
dank
Vielen Dank. Ich habe ein bisschen mehr Fragen. In meinem Produkt habe ich zwei Felder: 'type_id' und' type_name' (zur Verhinderung der Abfrage 'ProductType' Tabelle). Wie kann ich 'form_for' verstehen und sowohl' id' als auch 'name' von' ProductType' zu 'Product' Tabellenfeldern senden. (also muss ich nicht erneut 'ProductType' abfragen, um den Namen von der ID zu erhalten). Danke –
Ich empfehle, dies als separate Frage zu veröffentlichen, so dass jeder davon profitieren kann. Kurz gesagt, ich empfehle, im 'Product'-Modell einen 'before_save'-Callback zu verwenden, um den' name' zu setzen. Gerne, um einen separaten Beitrag zu erarbeiten, wenn Sie –
und eine weitere Sache möchten. Wie ich im Dokument lese, verwenden sie etwas wie: 'collection_select (: post,: autor_id, Autor.all,: id,: name_with_initial, prompt: true)'. Also sollte es in meinem Fall sein: 'f.collection_select: product,: type, ProductType.all,: name,: id'. Aber wenn ich das tue, treffe ich den Fehler: 'undefined Methode' merge 'für: name: Symbol'. Danke –