Ich habe ein Audi-Modell in meiner Ruby on Rails-Anwendung, in der es viele Felder wie Modell, Variante, Auto Bild, Exterieur, Interieur, Broschüre usw. gibt Um einige Attribute (nicht alle) zu aktualisieren, gibt es undefinierte Methode `each 'für nil: NilClass im äußeren und inneren Bildbereich.undefined Methode `each` für Null: NilClass in Update-Methode
Genauer gesagt ist das Problem hier:
params[:exterior_image].each { |exterior_image| ... }
Update-Methode:
def update
respond_to do |format|
@audi_model = AudiModel.find(params[:id])
if @audi_model.update(audi_model_params)
model_exterior_image_names = @audi_model.car_exterior_images.map{|m|m.exterior_image_file_name}
params[:exterior_image].each { |exterior_image|
unless model_exterior_image_names.include?(exterior_image.original_filename)
@audi_model.car_exterior_images.create(exterior_image: exterior_image)
end
}
model_interior_image_names = @audi_model.car_interior_images.map{|m|m.interior_image_file_name}
params[:interior_image].each { |interior_image|
unless model_interior_image_names.include?(interior_image.original_filename)
@audi_model.car_interior_images.create(interior_image: interior_image)
end
}
format.html { redirect_to @audi_model, notice: 'Audi model was successfully updated.' }
format.json { render :show, status: :ok, location: @audi_model }
else
format.html { render :edit }
format.json { render json: @audi_model.errors, status: :unprocessable_entity }
end
end
Anfrage Parameter:
{"utf8"=>"✓",
"_method"=>"patch",
"authenticity_token"=>"3qiq/VNRNk369HEZr0Eb/R5iuhKgGTpJCfOh8ek3nGWLeU+zDNDvEAwJ3SvlLb0h4gVql549d3GnCV9Fa/ZnNA==",
"audi_model"=>{"car_model"=>"TT",
"variant"=>"Diesel",
"introduction"=>"test",
"engine"=>"test",
"video_url"=>"https://www.youtube.com/watch?v=N3x_RZlOmK0",
"brochure_url"=>"http://www.audigurgaon.in/brochure/tt-brochure-2014.pdf"},
"commit"=>"Update Audi model",
"id"=>"19"}
die 'params' Überprüfen Sie auf die Update-Aktion kommt und es in der Frage stellen. – Pavan
Können Sie das Formular zur Aktualisierung Ihres Modells posten? Fügen Sie am Anfang der Methode ein "Raise" hinzu und geben Sie "params" ein, um zu sehen, was übergeben wird. Stellen Sie hier die Parameter –
Audi Modell in einer Tabelle, die alle oben genannten Parameter enthält, und es gibt zwei Fremdschlüsseltabellen, nämlich Außenaufnahmen und Außenaufnahmen. Also versuche ich die Parameter in audi model table zu aktualisieren, aber nicht exterior und interior – Ekta