2010-02-25 42 views
0

我打算在这里工作就是创建一个用户 的迹象了,但绝不会在创建所述接触时,相应的接触,尽管使用build_ * 与HAS_ONE:build_ *不尽管是HAS_ONE

联系模型:

has_one :user 

用户模型:

belongs_to :contact 

用户控制器:

def signup 
    @user = User.new 
end 

def signup_success 
@user = User.find params[:id] 
contact = @user.build_contact 
contact.contactable = School.first 
contact.save 
end 

protected 

路线:

map.resources :users, 
:collection => { 
    :signup => :get 
}, 
:member => { 
    :signup_success => :any 
} 

什么我做错了任何想法?感谢您的任何建议。

+0

当您尝试将其保存在控制台中时,联系人对象有什么错误? 'contact.errors.full_messages' – EmFi 2010-02-25 19:38:24

回答

0

如果将属性传递给build,它会起作用吗?

contact = @user.build_contact(:contactable => School.first) 
contact.save 
+0

号即使当我直接将它添加到模型,但它仍然不工作: before_create:ensure_site 高清ensure_site 如果:注册 接触= self.build_contact(:接触= > School.first) contact.save 结束 结束 – JohnMerlino 2010-02-25 21:39:46

+0

问题是当我保存一个联系人时,它从联系人页面调用一个有效的防止保存。不过谢谢。我喜欢你的参数哈希技术比我在做的多步骤方式更好。 – JohnMerlino 2010-02-26 15:36:11

+0

很高兴你能够得到它的工作。 – 2010-02-26 15:51:00