2016-07-06 12 views
-2

Ich möchte mehrere Objekte eines Modells in Rails erstellen und ich habe einige Probleme beim Speichern von ihnen. Ich füge bereits Felder dynamisch hinzu und entferne sie, aber ich kann nicht herausfinden, wie man die vielfachen Objekte speichert.Erstellen mehrerer Objekte desselben Modells in Rails

ich die Daten meiner Ansicht wie folgt empfangen:

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 ist die wichtigste Transaktion, dates und values sind, was von der Haupttransaktion und den beiden anderen Transaktionen difers.

meine Methode in TransactionController erstellen ist wie folgt:

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 

Aber ich bin immer diese Fehlermeldung:

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

Anscheinend kann ich nicht Transaction.create rufen auf diese Weise, aber ich bin fast Sicher, ich habe so etwas in einem Tutorial gesehen.

+0

Ruby hat Flags, die Ihnen helfen können, diese Art von Problemen zu diagnostizieren: 'ruby -cwW2 script_to_check.rb' –

Antwort

0

Ich sehe, es ist ein Fehler in Ihrem Klassennamen. Es sollte

Transaction.create({}) 

sein, aber, Sie beziehen sich auf sie als

Trasanction.create({}) 

nur den Klassennamen ändern und es sollte funktionieren.

+0

Ich bringe mich einfach um ... Sie haben Recht. Es hat jetzt funktioniert. –

Verwandte Themen