0

我試圖在創建子模型時自動創建子模型,如this post中所述。假設我有兩個模型Personhas_one :folder並且我想在創建人員時創建一個文件夾爲此,我進入Person模型和(從上例中)執行以下操作。自動構建has_one子模型時設置屬性

has_one :folder 
before_create :build_default_folder 

private 
def build_default_folder 
    build_folder 
    true 
end 

這是有道理的,但說Profile有一些屬性,我想基礎上,Person的屬性設置屬性爲Folder。如果此人有:person_name,我應該怎麼做才能將:folder_name設置爲「[person_name]'s_Folder」?

感謝您的任何建議。

回答

1

您能夠從子模型訪問父屬性:

class Profile < AR::Base 
    has_one :folder 
    before_create :build_default_folder 

    private 
    def build_default_folder 
     build_folder(folder_name: person_name) 
     true 
    end 
end 

閱讀Active Record Associations的文檔。

+0

感謝您的迴應。如果這是在人模型中不是'build_folder(folder_name:self.person_name)'?還是我誤會了? – neanderslob

+1

是的,我的壞,你可以使用'self.person_name'和'person_name'。 –

+0

很酷,謝謝! – neanderslob