正确地在rails 3应用程序中布置用户

时间:2012-04-30 20:35:18

标签: ruby-on-rails ruby database ruby-on-rails-3

好的,所以我有一个全新的rails 3.2.3应用程序,我需要具有很多其他属性的用户,如流派和生日等。我要求构建数据库的最佳方法。我在想用户和个人资料

class Profile < ActiveRecord::Base
  belongs_to :contact

class User < ActiveRecord::Base
  has_one :profile

并将名字和密码信息放在users表中,将其他数据放在profiles表中。我使用devise作为用户身份验证。但我有一个注册表单,其中包含所需的所有信息,因此有一种简单的方法可以避免在表单中嵌套两个表。有没有一种简单的方法可以做到这一点...这看起来非常基本,但让我有点困惑

1 个答案:

答案 0 :(得分:1)

就个人而言,我喜欢将数据指向同一个表中的同一个实体,

用户=&gt;名称,地址,密码,... #use role_id用于不同的角色,即admin,tester,viewer?取决于您的需求和复杂程度。

您想使用belongs_to => :user #module\table name

您的表单需要更新才能获得user.profile.password等个人资料数据...(这是我从您的问题中理解的简单方法)

当您想要编辑时,您可以使用类似edit_user_profile_path(current_user, @profile)的内容注意路径user_profile,这是它知道从哪里抓取它。

就像在这个答案https://stackoverflow.com/a/4753856/643500

中一样

另外,如果您不熟练使用rails,请考虑从头开始编写您的第一个身份验证系统。通过这种方式,您将了解所有内容的位置,并能够知道如何自定义它,或者像设计一样。这里的教程http://ruby.railstutorial.org/ruby-on-rails-tutorial-book