在自动构建has_one子模型时设置属性

时间:2016-05-14 10:46:45

标签: ruby-on-rails ruby-on-rails-4 model attributes nested-attributes

我正在尝试在创建父模型时自动构建子模型,如this post中所述。假设我有两个模型Person has_one :folder,我想在人创建时创建一个文件夹为了做到这一点我进入Person模型并且(从上面的示例中)执行以下操作

has_one :folder
before_create :build_default_folder

private
def build_default_folder
  build_folder
  true
end

这是有道理的,但是说Profile有一些属性,我想根据Folder的属性设置Person的属性。就好像这个人有:person_name我应该怎么做才能将:folder_name设置为“[person_name]'s_Folder”?

感谢您的任何建议。

1 个答案:

答案 0 :(得分: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的文档。