0

Ich möchte zum Erstellen von Objekten mit Polymorphe Verein verwenden, aber es gibt mir eine Fehlermeldung wie:So erstellen Objekte Schienen polymorphe Assoziation

NoMethodError (undefined method `new' for nil:NilClass): 

Hier sind params:

Parameters: {"utf8"=>"✓", "authenticity_token"=>"TAQdqSTXAFCrq6yZBUnjVXe7IsPqmxuLh/qM/2QvKaVvsfP 
/Sy6VNF7H38IzOg8aMj39t6HR+aZLLtyj8uMzyw==", "search"=>"Newport-Mesa Unified 
School District", "id"=>"32", "type"=>"PrivateSchool", "commit"=>"Submit"} 

Hier sind Modelle:

Steuerungscode:

def index 
    @popular_school = PopularSchool.new 
    @popular_schools = PopularSchool.all 
    end 

    def create 
    @popular_school.new.save 
    respond_to do |format| 
     format.html { redirect_to root_path } 
     format.json { head :no_content } 
     format.js 
    end 
    end 
+0

'@ popular_school' in' nil' in 'create' Aktion versuchen. Stattdessen sollte es @popular_school = PopularSchool.new (params) sein. – Deep

+0

@Deep Müssen wir wieder Parameter definieren? Es ist polymorph und sollte automatisch funktionieren, da ich keine anderen Parameter übergebe. Könnten Sie bitte erklären? – LearningROR

+0

Sie definieren die Parameter nicht. Die 'Params' sind die Daten, die Sie von der Ansicht erhalten. Mit diesen Daten erstellen Sie ein neues Objekt und speichern es in der Datenbank. Die '@ popular_school', die Sie in der Aktion 'index' erstellt haben, ist in keiner anderen' Aktion' mehr verfügbar, die nur in der Ansicht verfügbar ist. – Deep

Antwort

2

Sie haben @popular_school nirgendwo definiert. Deshalb erhalten Sie NoMethodError (undefined method new for nil:NilClass): Fehler.

PopularSchool.create(your_params)

+0

heißt es: 'ActiveModel :: ForbiddenAttributesError (ActiveModel :: ForbiddenAttributesError): ' – LearningROR

+0

Könntest du uns die 'Form' zeigen, von der du einreichst, um' PopularSchool' zu erstellen? –

+0

'<% = form_for ([: admin, @popular_school]) do | f | %> <% = text_field_tag: search, "", id: "search-txt", Klasse: "ui-autocomplete-input form-control"%>

<% = hidden_field_tag ​​"id", "", Wert : ""%> <% = hidden_field_tag ​​"Typ", "", Wert: ""%> <% = f.mit "Übermitteln",: class => "btn btn-md btn-info"%> <% end %> ' – LearningROR

Verwandte Themen