Rails 4 и fields_for с использованием начальных данных. Как предварительно заполнить форму?
Цель состоит в том, чтобы предварительно заполнить форму исходными данными: https://github.com/ornerymoose/GarageApp
Соответствующий код для перебора номеров киосков находится в garages_controller.rb
:
def new
@garage = Garage.new
for i in 1..5
@garage.cars.build :stall_number => i
end
end
Это даст 5 строковых значений stall_number 1, 2, 3, 4 и 5. Вместо этого, как бы я перебрал значения в seeds.rb
файл?
Car.create(stall_number: "stall1")
Car.create(stall_number: "stall2")
Car.create(stall_number: "stall3")
Car.create(stall_number: "stall4")
Car.create(stall_number: "stall5")
Таким образом, вместо stall_number s, имеющих значения 1, 2, 3, 4 и 5. Они будут иметь строковые значения, перечисленные в файле seed.rb.
Здесь fields_for
блок в гараже _form.html.erb
:
<%= f.fields_for :cars do |builder| %>
<p>Enter license for car parked in stall: <%= builder.object.stall_number %></p>
<%= builder.label :license, "License #:" %><br />
<%= builder.text_field :license %>
<% end %>
Любой вклад по этому вопросу с благодарностью.
1 ответ
Просто сделайте тот же цикл в начальном файле.
for i in 1..5
Car.create(stall_number: "stall" + i.to_s)
end
Если они статические, просто создайте их в массиве и вызовите их.
array = ["stallA", "stallDC", "stall874", "stallNN", "stallPO", "stalSF", "stallRE", "stall456", "stall39", "stall99"]
array.each {|x| Car.create(stall_number: x)}