Rails/Devise:立即创建用户和父级组织
问题描述:
使用Devise。Rails/Devise:立即创建用户和父级组织
型号:
User belongs_to Organization
Organization has_many Users
注册过程中,我要创建用户的上级组织为好。因此,这两个部分的形式:1)组织信息,和2)基本用户信息(电子邮件/密码)
我已经做了一堆寻找设计和嵌套资源,但他们通常谈论模型关系另一个方向(用户has_many)。
任何想法?
在此先感谢!
答
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.
或类似的东西。
不应该用户'belongs_to:organization'? – murrekatt
更新,谢谢。 – jmccartie