Ich baue ein Buchungssystem für Hotels und erstellt ein Preismodell, das vom Raummodell als verschachtelte Attribute akzeptiert wird. So weit, so gut, alles funktioniert einwandfrei. Da ich jedoch die Möglichkeit geben will, Preiserhöhungen einhalten zu können, benötige ich die Antworttage in meinem Preismodell. Also im Grunde, Preis: 50, 80, 120 zusammen mit Tagen: 1, 2, 3 ... ok, so jetzt meine Frage: Wie kann ich erreichen, dass die Tage automatisch in der Preistabelle gespeichert werden, so dass der Benutzer nur benötigt um den Preis für einen bestimmten Tag einzugeben.Rails verschachtelte Formulare: Index als Wert DB zuweisen
Ich habe versucht, es mit einem versteckten Feld arbeiten, die an die Tage Spalte reicht, aber ich konnte es nicht beheben. Da ich vom Controller 20 Inkremente generiert habe, habe ich es mit dem vom fields_for helper generierten Index versucht.
hier ist der relevante Teil meiner Controller:
def new
@room = current_user.rooms.build
20.times do
increment = @room.increments.build
end
end
Und hier ist meine Ansicht:
<%= form_for @room do |f| %>
#...
<%= f.fields_for :increments do |ff| %>
<%= ff.text_field :price, placeholder: 'price' %>
<%= ff.hidden_field :days, value: 'index' %>
Haben Sie Ideen, wie ich erreichen, um den Wert zu bekommen konnte meine hidden_field auf 1 ... 20 in Bezug auf meinen Controller, der 20 Preisfelder generiert? Muss ich einen Formularhelfer schreiben und wenn ja, wie kann ich die Anzahl der Tage hinzufügen? Bin ich völlig falsch mit meinem Ansatz und es gibt einen offensichtlichen Weg, die gleiche Funktionalität zu erreichen? Jede Hilfe wird sehr geschätzt!
mit '(1..20)' ist viel eleganter als '20.times' – max