2016-10-19 5 views
1

In meiner ersten Rails (5) -App möchte ich einen Standardwert für eine Assoziation auf erstellen. Habe Dokumentation gelesen und viele Fragen zu SO noch nicht finden können.Rails setzen den Standardwert für die Zuordnung

I after_initialize :set_default_values verwenden und die Standardeinstellung für documenttype

def set_default_values 
    unless persisted? 
     self.documenttype || 1 if self.documenttype.nil? 
     self.dateformat ||= 'dd.mm.yyyy' if self.dateformat.nil? 
    end 
end 
+0

haben Sie das '=' Zeichen vergessen: 'self.documenttype || = 1' – MrYoshiji

Antwort

1

festlegen möchten Ich denke, Sie = hier fehlen:

self.documenttype || 1 if self.documenttype.nil? 

Es sollte wie sein

self.documenttype ||= build_documenttype 

oder für einen bestimmten Dokumententyp:

self.documenttype ||= Documenttype.find(1) 

EDIT: In Kommentar OP documenttype erwähnt ist ein has_one Verein.

+0

das Hinzufügen des' = 'Zeichen löst nicht auf; es rendert dann einen Fehler 'Documenttype (# 70289997518120) erwartet, bekam Fixnum (# 70289925178420) ' –

+0

So Documenttype erwartet einen anderen Objekttyp (Documenttype) und Sie versuchen, Standardwert 1 zu setzen, so dass dieser Fehler. Welche Art von Variable ist "Dokumententyp"? Wenn Sie mir mehr Details geben können, dann kann ich vielleicht helfen – Sajan

+0

es ist eine has_one Assoziation –

Verwandte Themen