在 rails4 中运行创建 n 次

Posted

技术标签:

【中文标题】在 rails4 中运行创建 n 次【英文标题】:Run a create n times in rails4 【发布时间】:2015-07-18 05:58:12 【问题描述】:

我想这样做: 我有一个名为 Item 的模型,其中有一个名为 name 的字段,由脚手架生成:

rails g scaffold Item name:string

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

【问题讨论】:

【参考方案1】:

您可以通过在表单中​​使用循环 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

【讨论】:

【参考方案2】:

尝试使用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

【讨论】:

以上是关于在 rails4 中运行创建 n 次的主要内容,如果未能解决你的问题,请参考以下文章

Rails 4.2 不创建非消化资产

创建单个列表项的列表乘以 n 次

Stripe:n 次付款后过期/取消订阅

脚手架 Rails4 空控制器

如何检查元素被创建了多少次并创建了 n 次

每隔 n 次 Javascript,创建新行