2011-09-27 3 views
1

J'ai un formulaire où l'utilisateur s'inscrit et crée un compte, un utilisateur et un site Web.Rails 3 créer des objets imbriqués par défaut

def new 
    @account = Account.new 
    @account.users.build 
    @account.websites.build 
    ... 
end 

def create 
    @account = Account.new(params[:account]) 
    ... 

Tout fonctionne bien. Maintenant, je veux créer une page par défaut avec Page.title = "homepage" et Page.body = "".

Comment puis-je faire cela? J'ai essayé différentes options et ça ne marche pas. Par exemple, je fais cela @account.websites.pages.build et je reçois cette undefined method pages for []:ActiveRecord::Relation.

+1

essayer '@ account.websites.build.pages.build' –

+0

essayée, mais j'obtenir un titre de méthode non définie pour la classe zéro' @ account.websites [0] .pages [0] = .title "page d'accueil" ' – leonel

Répondre

1

La collection retournée par @account.websites est un tableau, les rails ne peuvent pas deviner quel membre de la collection vous essayez de créer un objet associé ... Vous devez spécifier le site web pour lequel vous voulez construire une page, à savoir

@account.websites.first.pages.build 
Questions connexes