So habe ich zwei Formulare zum Erstellen von Objekten. Ich kann Owner
mit nur einem name
erstellen. Jetzt möchte ich einen Listing
mit einem name
erstellen und es einem Owner
zuweisen. Ich kann eine neue Listing
erstellen, wenn ich nicht die 1-n-Beziehungen eingerichtet habe, aber wenn ich Listing
belongs_to :owner
das Formular nicht mehr funktioniert.Formular schlägt fehl, neues untergeordnetes Objekt mit Mongoid 1-n-Referenz zu erstellen
Modelle:
class Owner
include Mongoid::Document
has_many :listings
field :name, type: String
end
class Listing
include Mongoid::Document
belongs_to :owner
field :name, type: String
end
Form:
<%= form_for @listing do |f| %>
<div class="form-group">
<%= f.label :name, "Listing Name" %>
<%= f.text_field :name, class: "form-control" %>
</div>
<div class="form-group">
<%= f.label :listing, "Owner" %>
<%= f.collection_select :owner_id, Owner.all, :id, :name, prompt: true %>
</div>
<%= f.submit class: "btn btn-primary" %>
<% end %>
Controller:
def new
@listing = Listing.new
end
def create
@listing = Listing.new(listing_params)
if @listing.save
redirect_to @listing, notice: "Listing Creation >> SUCCESS" and return
end
render :new
end
private
def listing_params
params.require(:listing).permit(:name, owner_attributes: [:name])
end
Meine Form richtig in dem Sinne erzeugt, dass ich das Feld bekommen einen Namen und ein Drop-Down eingeben Liste mit jedem Owner
, aber das Formular erstellt nicht die neue Listing
. Ich verstehe nicht, denn wenn ich die has_many
und belongs_to
Relationen entfernen, funktionieren die Formulare und die Objekterstellung in Ordnung.
Bitte denken Sie daran, dass ich diese sehr sehr neu bin :)
Dank!
Wow ... vielen Dank, dass Sie sich die Zeit genommen haben, mir zu helfen !! Das hat es behoben! Ich bin immer noch super neu und ich finde immer wieder, dass ich den Wagen vor das Pferd stelle ... Ich bin froh, dass ich das Problem klar genug kommunizieren konnte, dass du es für mich lösen kannst. Nochmals vielen Dank: D –