2017-02-19 3 views
1

Ich habe ein einfachen Gebote Modell, das einen Anbieter bettet:aktualisieren eingebettetes Dokument in mongoid

class Bid 
    include Mongoid::Document 
    field :amount, type: Integer 
    embeds_one :supplier 
    accepts_nested_attributes_for :supplier 
end 

Viele Gebote haben die gleichen Lieferanten. Wie würde ich bei Verwendung einer Gerüstbearbeitungsansicht alle Instanzen des eingebetteten Lieferanten in Geboten in der Aktualisierungsmethode aktualisieren?

habe ich versucht, ohne Erfolg, so etwas wie

def update 
    @supplier.update(supplier_params) 
    #or 
    #bids = Bid.where('supplier._id' => @supplier.id) 
    #bids.supplier.update_attributes!(supplier_params) 
    redirect_to @supplier 
end 
+0

Was meinst du mit 'Wie würde ich alle aktualisieren der Instanzen des eingebetteten Lieferanten in Geboten? '- Die Frage macht keinen Sinn, da Sie eine' embeds_one'-Beziehung haben. Daher kann die Aktualisierung eines Gebots niemals mehr als einen Lieferanten aktualisieren. – max

Antwort

2

Da Sie nested attributes verwenden sollten Sie, indem supplier_attributes die verschachtelte Datensatz aktualisieren können.

Bid.find(1).update(supplier_attributes: { foo: 'bar' }) 

verschachtelte params Um die weiße Liste setzen Sie einen Hash-Option verwenden:

params.require(:bid).permit(supplier_attributes: [:foo]) 

die Formularfelder Sie fields_for verwenden zu generieren:

<%= form_for(@bid) do |f| %> 
    <%= f.fields_for(:supplier) do |s| %> 
    <%= s.label :foo do %> 
     <%= s.text_field :foo %> 
    <% end %> 
    <% end %> 
<% end %> 
+0

Das ist Mongoid, nicht aktive Aufzeichnung? – HoosierCoder

+0

Echte, falsche Dokumentverknüpfung, aber geschachtelte Attribute in Mongoiden funktionieren fast genau wie in AR. https://mongoid.github.io/old/en/mongoid/docs/nested_attributes.html – max

+0

Ich glaube nicht, dass es einen großen Unterschied im Verhalten von verschachtelt zwischen Mongoid 4 und 6 gibt, aber die v6 Docs sind wirklich schlecht. https://docs.mongodb.com/ruby-driver/master/tutorials/6.0.0/mongoid-nested-attributes/ – max

Verwandte Themen