在Rails中创建组中的项目

时间:2010-03-22 21:27:35

标签: ruby-on-rails

我的产品表是

id        type         price      location
1         chips         $3          aisle3

我有一个问题,即在组中添加产品。 有一个数量字段(非模型),用户可以在其中输入数量 在用户输入以下内容时添加新产品:

type: soda
quantity: 3

然后应该在产品型号中使用type = soda创建3条记录,如下所示。

id   type   
2    soda  
3    soda   
4    soda   

如果用户输入

location: aisle4
quantity: 2

然后

id   location  
5    ailse4
6    ailse4

您能否告诉我如何将非模型字段'quantity'传递给rails(模型或控制器)以及如何使用它来如上所述在组中添加产品?或者我应该在产品表中创建一个名为quantity的列?是否会使用after_create过滤器为所有这些新记录更新历史记录? 是否有任何好的教程或书籍显示如何将这些非模型html / javascript字段从视图传递到rails然后再返回到视图? 任何帮助将不胜感激。 感谢

1 个答案:

答案 0 :(得分:1)

试试这个:

class Product < ActiveRecord:Base

  attr_accessor :quantity


  def self.create_in_group(params)
    size, i = params["quantity"].to_i, 0
    size.times { Product.create(params);i+=1 }  
    i == size
  end

end

class ProductsController < ApplicationController

  def create
    if Product.create_in_group(params[:product])
      # success
    else
      # error
    end
  end

end

PS:在您的视图中,您可以访问quantity字段,就像它是产品型号字段一样。