Rails 4和fields_for使用种子数据。如何预填表格?

时间:2016-02-08 16:34:39

标签: ruby-on-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文件中的值?< / p>

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")

因此,而不是具有值1,2,3,4和5的stall_numbers。它们将具有seeds.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 个答案:

答案 0 :(得分: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)}