Rails 3创建默认的嵌套对象

时间:2011-09-27 19:46:08

标签: ruby-on-rails ruby activerecord

我有一个用户注册并创建帐户,用户和网站的表单。

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

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

一切正常。现在,我想创建一个带有Page.title =“homepage”和Page.body =“”的默认页面。

我该怎么做?我尝试了不同的选项,但它不起作用。例如,我执行此操作@account.websites.pages.build并获得此undefined method pages for []:ActiveRecord::Relation

1 个答案:

答案 0 :(得分:1)

@account.websites返回的集合是一个数组,rails无法直接尝试在您尝试创建关联对象的集合中的哪个成员...您需要指定要构建哪个网站页面,即

@account.websites.first.pages.build