正如本文所述,我正试图在创建父模型时自动构建子模型。假设我有两个模型Person
has_one :folder
,我想在人员创建时创建一个文件夹。为此,我进入Person
模型并(从上面的示例中)执行以下操作。
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_]'s_Folder"?
谢谢你的建议。
您可以从子模型访问父属性:
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
的文档。