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

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

rails g scaffold Item name:string

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

【问题讨论】:

    标签: ruby-on-rails model repeat scaffold


    【解决方案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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-21
        • 1970-01-01
        • 2015-05-15
        • 1970-01-01
        • 2013-07-08
        • 2019-05-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多