2017-12-31 54 views
1

Angenommen, es gibt 2 Formulare in der gleichen Ansicht, frage ich mich, wie Eingabe-Tags zwischen den Formularen festgelegt werden. So.Wie wird das Eingabe-Tag zwischen mehreren Formularen festgelegt?

= form_for @restaurant, url: {action: restaurant_path} do |r| 
     = r.fields_for :restaurant_translations do |rt| 
     dl.field 
      dt = rt.label (t :restaurantname) 
      dd = rt.text_field :restaurantname, autofocus: true, size: 120 
     dl.field 
      dt = rt.label (t :restauranttel) 
      dd = rt.text_field :restauranttel, autofocus: true, size: 120 
     dl.field 
      dt = rt.label (t :restaurantaddr) 
      dd = rt.text_field :restaurantaddr, autofocus: true, size: 120 
     dl.field 
     dt = r.label (t :url) 
     dd = r.text_field :url 
     dl.field 
     dt = r.label (t :storehours) 
     dd = r.text_field :storehours 

Derzeit ist die Reihenfolge wie folgt.

  1. restaurantname
  2. restauranttel
  3. restaurantaddr
  4. url
  5. storehours

Wenn möglich, würde Ich mag, wie diese Form, um setzen.

  1. url
  2. restaurantname
  3. storehours
  4. restauranttel
  5. restaurantaddr

Im Moment ist es zu schwierig, unterschiedliche Form-Tag zu mischen. Weiß jemand wie? Lass es mich bitte wissen.

+0

Sind Sie slim-lang Template-Engine für Rubin? – Nima

Antwort

0

Sie müssen mehrere fields_for Form Helfer,

= form_for @restaurant, url: {action: restaurant_path} do |r| 
     dl.field 
     dt = r.label (t :url) 
     dd = r.text_field :url 
     = r.fields_for :restaurant_translations, @restaurant_translation do |rt| 
     dl.field 
      dt = rt.label (t :restaurantname) 
      dd = rt.text_field :restaurantname, autofocus: true, size: 120 
     dl.field 
     dt = r.label (t :storehours) 
     dd = r.text_field :storehours 
     = r.fields_for :restaurant_translations, @restaurant_translation do |rt| 
     dl.field 
      dt = rt.label (t :restauranttel) 
      dd = rt.text_field :restauranttel, autofocus: true, size: 120 
     dl.field 
      dt = rt.label (t :restaurantaddr) 
      dd = rt.text_field :restaurantaddr, autofocus: true, size: 120  

von Controller-Aktion Build @restaurant_translation als

@restaurant_translation = @restaurant.restaurant_translations.build 

ich diese Ihnen helfen, hoffen verwenden

+1

Danke @Ganesh. Aber leider schafft das mehrere Einträge auf restaurant_translations. Könnten Sie mir sagen, wie ich dieses Problem vermeiden kann? –

+1

hat gerade die Antwort bearbeitet, um das obige Problem zu vermeiden –

Verwandte Themen