2016-07-25 7 views
0

Ich verwende Rails 4.2.3. Ich habe diese beiden ModelleDer Versuch, default_scope einzurichten, aber "Unterstützung für das Aufrufen von #default_scope ohne einen Block wird entfernt" Fehler

class Address < ActiveRecord::Base 
    … 
    has_one :user 

und

class User < ActiveRecord::Base 
    belongs_to :address 
    default_scope includes(:address) 

Ich möchte meinen Eltern Verband automatisch geladen, wenn ich meine „MyObject“ laden, aber ich bin immer diesen Fehler auf der „default_scope“ line ...

Support for calling #default_scope without a block is removed. For example instead of `default_scope where(color: 'red')`, please use `default_scope { where(color: 'red') }`. (Alternatively you can just redefine self.default_scope.) 

Wie kann ich meine "default_scope" -Zeile anpassen, um meine Elternverknüpfung automatisch zu laden?

Antwort

0
  • Sie fehlen Block in Ihrer Linie, Ändern Sie es wie folgt aus:

    default_scope { includes(:address) } 
    
+0

Obwohl meine Linie „“ bewirkt, dass der Fehler Wechsel weg zu gehen, meine Adresse Einheit ist noch nicht geladen wenn ich "User.find_by (id: session [: user_id])" anrufe. Ich habe überprüft, dass tatsächlich eine Adress-ID mit dem betreffenden Benutzer verknüpft ist. – Dave

+0

Ich versuchte es gleich und es funktionierte für mich. Wie überprüfen Sie das Laden der Adresse, z. Senden Sie das Ergebnis als JSON-Objekt? – Devd

Verwandte Themen