在rails4

时间:2015-05-07 15:00:29

标签: ruby-on-rails model repeat scaffold

我想这样做: 我有一个名为Item的Model,其中有一个名为name的字段,用scaffold生成:

rails g scaffold Item name:string

我的问题是:当我必须创建一个新项目时,我会进入localhost / 3000 / new,我每次只能创建一个项目。我怎么能自动重复n次?每次我推动创建我想创建n个寄存器。 Rails有一个简单的方法来做到这一点。谢谢,对不起我的英语水平。

2 个答案:

答案 0 :(得分:1)

尝试使用Faker gem和简单的rake任务/lib/tasks/task.rake,并使用以下代码:

namespace :db do
  desc "Fill database with sample data"
  task populate: :environment do
    make_items
  end
end

def make_items

  99.times do |n|
    name  = Faker::Name.name

    Item.create!(name: name)
  end
end

答案 1 :(得分:0)

您可以在表单中使用循环n次。 像:

<% n= 10 %>
<%= form_tag url: "/products",method: :post do|f| %>
  <% (0..n).times do |i| %>
    <label> Name </label>
    <%= text_field_tag "products[][:name]"%>
  <% end %>

  <%= submit_tag "Create Products" %>  
<% end %>    

而且,在产品控制器中, 写下面的代码

def create
  @products = Product.create(params[:products])
end