在Rails中创建相同模型的多个对象

时间:2016-07-06 17:07:44

标签: ruby-on-rails ruby ruby-on-rails-4 controller

我想在Rails中创建同一模型的多个对象,并且我面临一些保存它们的问题。我已经动态添加和删除字段,但我无法弄清楚如何保存多个对象。

我从我的View中收到数据:

Parameters: {
  "utf8"=>"✓", 
  "authenticity_token"=>"0aoRgalvZPKdBJr15EooxNCimh2C6R2RBYi3wTXTpaIwpzb8cNSAH/968932KFscg8eiNPej1x2iYFsaWalVQw==", 
  "transaction"=>{
    "client_id"=>"206",
    "invoice_id"=>"1",
    "date"=>"07/07/2016", 
    "value"=>"50",
    "description"=>""}, 
  "dates"=>[
    "07/08/2016", 
    "07/09/2016"], 
  "values"=>[
    "49", 
    "48"], 
  "commit"=>"Save"}

transaction是主要交易,datesvalues是主要交易和其他两个交易的不同之处。

我在TransactionController中的create方法是这样的:

def create
  @transaction = Transaction.new(transaction_params)
  dates = params['dates']
  values = params['values']
  if(!dates.nil?)
    @transactions_ = []
    dates.length.times do |i|
      t = Trasanction.create(
            client_id: @transaction.client_id,
            invoice_id: @transaction.invoice_id,
            description: @transaction.description,
            date: dates[i],
            value: values[i])
      @transactions_ << t
    end
  end
  respond_to do |format|
    if @transaction.save
      @transactions_.each do |t|
        t.save
      end
      format.html { redirect_to @transaction, notice: 'Transaction succefully created.' }
      format.json { render :show, status: :created, location: @transaction }
    else
      format.html { render :new }
      format.json { render json: @transaction.errors, status: :unprocessable_entity }
    end
  end
end

但是我收到了这个错误:

uninitialized constant TransactionsController::Trasanction
  t = Trasanction.create(

显然我无法以这种方式致电Transaction.create,但我几乎可以肯定我在教程中看到了类似的内容。

1 个答案:

答案 0 :(得分:0)

我看到你的班级名字有误。它应该是

Transaction.create({})

但是,你指的是

Trasanction.create({})

只需更改班级名称即可。