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)}
Другие вопросы по тегам