2017-01-30 2 views
0

Hallo ich möchte Kundenname in einer Tabelle einfügen, indem Sie Kundennummer verwenden, fügen Sie Kundenstadt in andere Tabelle ein. mein Code fügt nur Kunden ein. die Städte einfügen nichtFormulardaten in zwei Tabellen mit einer Eingabe in Schienen einfügen

meine Konsole

Gestartet POST "/ pages" für 127.0.0.1 bei 2017-01-30 14:40:15 +0530 Verarbeitung von PagesController # als HTML-Parameter zu erstellen: { "UTF-8" => "✓", "authenticity_token" => "NfyA8PpA4wZIAOPX7fYstwvt2suXoTYgl9ep1M6yTSh6ZPX8lt + oOfPX6sFXGOuxTidVND6qaksz6iZ2enGj9g ==", "Kunde" => { "name" => "fgfg", "custcity" => { "Städtename" => "2fg"}}, "commit" => "submit"} Unerreichter Parameter: custcity (0.1ms) begin Transaktion SQL (2.3ms) INSERT INTO "Kunden" ("name", "created_at", "updated_at") WERTE (?,?,?) [["Name", "fgfg"], ["created_at", 2017-01-30 09:10:15 UTC], ["updated_at “2017.01.30 09.10.15 UTC]] (231.7ms) Commit-Transaktion (0,2 ms) beginnen Transaktion (0,1 ms) Rollback-Transaktion Weitergeleitet http://localhost:3000/pages 302 in 247ms (Active gefunden Abgeschlossen: 234.3ms)

new.html.erb

<%= form_for @customer, url: {action: "create"} do |f| %> 
<%= label_tag("Customer") %> 
<br> 
<%= f.text_field(:name) %> 
<br> 
<%= f.fields_for @custcity do |c| %> 
     <%= label_tag("City 1") %> 
     <br> 
     <%= c.text_field(:cityname) %> 
     <br> 
     <%= label_tag("City 2") %> 
     <br> 
     <%= c.text_field(:cityname) %> 
     <br> 
<% end %> 
<br> 
<%= f.submit("submit") %> 
<% end %> 

pages_controller.rb

def create 
    @customer = Customer.new(cust_params) 
    if @customer.save 
     session[:customer_id] = @customer.id 

     #@custcity = Custcity.create(cityname: params[:customer][:cityname], cust_id: session[:customer_id]) 
     @custcity = Custcity.create({cityname: params[:customer][:cityname], cust_id: @customer.id}) 
     #@custcity.save 
     redirect_to pages_path 
    else 
     redirect_to new_page_path 
    end 
    end 

    private 
    def cust_params 
    params.require(:customer).permit(:name, :custcity => []) 
    end 
end 
+0

Sie sollten stark verschachtelte Parameter verwenden und Kunden Stadt params in starken Parameter definieren. –

Antwort

1

Falscher Pfad zu :cityname Schlüssel. Sie haben :custcity verloren

@custcity = Custcity.create({cityname: params[:customer][:custcity][:cityname], cust_id: @customer.id}) 

Permit cityname zu:

params.require(:customer).permit(:name, :custcity => [:cityname]) 
+0

dies gibt den Fehler 'unbekanntes Attribut custcity' zurück –

+0

Nach Idee sollten Kunden- und Custcity-Modelle mit has_many association verknüpft werden, und Sie müssen 'Custcity.create' nicht manuell aufrufen. –

Verwandte Themen