好的,所以我有一个全新的rails 3.2.3应用程序,我需要具有很多其他属性的用户,如流派和生日等。我要求构建数据库的最佳方法。我在想用户和个人资料
class Profile < ActiveRecord::Base
belongs_to :contact
class User < ActiveRecord::Base
has_one :profile
并将名字和密码信息放在users表中,将其他数据放在profiles表中。我使用devise作为用户身份验证。但我有一个注册表单,其中包含所需的所有信息,因此有一种简单的方法可以避免在表单中嵌套两个表。有没有一种简单的方法可以做到这一点...这看起来非常基本,但让我有点困惑
答案 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