Ziemlich neu bei Rails und haben eine Reihe von Dingen hier ohne Erfolg ausprobiert.Rails geschachtelte Form Erstellen falscher Fremdschlüssel
Mein Problem ist, wenn ich mit dieser geschachtelten Form in die Datenbank posten, eine meiner Tabellen (apartment_images) Beiträge mit dem falschen Fremdschlüssel (Wohnung_ID).
Ich habe eine ziemlich komplexe Modell Beziehung: Ich habe ein Gebäude has_many_through eine andere Tabelle, die sie mit (unter anderem) eine Apartments Tabelle zuzuordnet. Die problematische apartment_images Tabelle gehört zu Apartments.
gekürzter ist unten:
Gebäudemodell
has_many :building_relationships
has_many :apartments, :through => :building_relationships
accepts_nested_attributes_for :apartments, allow_destroy: true
Wohnung Modell
belongs_to :building
has_many :apartment_images, -> { order(position: :asc) }, dependent: :destroy
has_many :building_relationships
has_many :buildings, :through => :building_relationships
ApartmentImage Modell
belongs_to :apartment
buildings_controller (excluded neue Methode)
def createNewBuilding
@building = Building.new(building_params)
@apartment = Apartment.where(building_id: @building.id)
#also tried this but results in no id being save:
#@apartment = @building.apartments.build(apartment_params)
if @building.save
redirect_to newBuilding_path, notice: "Successfully created building"
else
render 'newBuilding'#, notice: "ERROR"
end
if apartment_image_params
apartment_image_params[:image].each do |value|
@apartment.apartment_images.build({image: value}).save
end
end
end
def apartment_image_params
#also tried adding :apartment_id. didn't work.
params.require(:apartment_image).permit(:id, image: []) if params[:apartment_image]
end
ich Mißverständnis sein könnte, aber der Fremdschlüssel für apartment_image _should_ apartment_id werden, da jedes Bild zu einem gehört und nur eine Wohnung, und jede Wohnung kann mehrere Bilder haben. Können Sie Ihr Problem näher erläutern? – jjk
im Grunde, wenn ich auf dem Formular submit und überprüfen Sie die Datenbank wird es das Bild oder Bilder, aber wird es mit der falschen apartment_id verbinden (dh nicht die neu erstellte Wohnung aus dem Formular) – Noobprogrammer
Warum verwenden Sie eine 'has_many though:' Beziehung zwischen einem Gebäude und einer Wohnung? sicherlich kann eine Wohnung nicht in mehreren Gebäuden sein? – max