Rails/Devise:立即创建用户和父级组织

问题描述:

使用Devise。Rails/Devise:立即创建用户和父级组织

型号:

User belongs_to Organization 
Organization has_many Users 

注册过程中,我要创建用户的上级组织为好。因此,这两个部分的形式:1)组织信息,和2)基本用户信息(电子邮件/密码)

我已经做了一堆寻找设计和嵌套资源,但他们通常谈论模型关系另一个方向(用户has_many)。

任何想法?

在此先感谢!

+0

不应该用户'belongs_to:organization'? – murrekatt

+0

更新,谢谢。 – jmccartie

u = User.new(params[:user]) 

if u.valid? 
    o = Organisation.create(params[:org_name]) 
    u.organization = o 
    u.save 
end 

您是否已经知道用户可能属于的组织?

在这种情况下,当他们注册并在保存时插入组织的ID时,只需下拉菜单。

否则,可能发生的情况是,除非您根据输入的名称进行猜测,否则您基本上最终会得到与组织1:1的结果。组织是否有任何与之相关的安全性?如果这是一个公共场所,这似乎有点危险,因为人们可以在他们不应该去的地方露营。

这就是说:

o = Organisation.find_or_create_by_name(params[:org_name]) 
u = o.user.build(params[:user]) 
if u.save ... # etc. 

或类似的东西。