0

this postに記載されているように、親モデルを作成したときに子モデルを自動的に構築しようとしています。私は2つのモデルを持っていると言う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

関連する問題