【发布时间】:2011-01-03 12:18:23
【问题描述】:
我为公司创建了一个设计。我已经创建了一个用户表,希望我想存储用户信息密码等。当用户注册时,我希望它创建一个新用户并与公司建立关联。
我的公司模型: has_one:用户 我的用户模型: 所属公司:公司
我应该如何覆盖注册控制器?
最好的问候, Rails 初学者
【问题讨论】:
标签: authentication ruby-on-rails-3 devise
我为公司创建了一个设计。我已经创建了一个用户表,希望我想存储用户信息密码等。当用户注册时,我希望它创建一个新用户并与公司建立关联。
我的公司模型: has_one:用户 我的用户模型: 所属公司:公司
我应该如何覆盖注册控制器?
最好的问候, Rails 初学者
【问题讨论】:
标签: authentication ruby-on-rails-3 devise
如果我在这里错了,请纠正我,但听起来公司不会登录 - 只有属于公司的用户。
考虑到这一点,您应该使用 User 而不是 Company 作为设计模型。那么,你的联想是正确的。下一步是使用嵌套属性(视图中的fields_for;模型中的accepts_nested_attributes_for)在company#new 的表单中为用户添加字段。
回答您最初的问题:您可以使用嵌套属性在注册表单中创建新用户。您不需要覆盖 Devise 的注册控制器。只需修改注册表单以包含fields_for 一个用户。此外,请确保 Company 模型具有 accepts_nested_attributes_for 用于 User 模型。
顺便说一句:我不了解您的应用程序的架构,但似乎has_many 更合适。在与此类似的情况下,您更有可能希望拥有属于同一家公司的多个用户。
【讨论】: