Has_one,Belongs_to迁移

时间:2014-02-19 04:45:34

标签: ruby-on-rails ruby devise migration models

我真的很难理解这个概念是如何运作的。首先,我将使用devise gem进行用户身份验证和激活,但我需要知道我的迁移应该如何。我有一个用于激活帐户的唯一密钥(将提供用户)。

所以这就是我的代码很早就看到了,请注意:

用户模型

class User < ActiveRecord::Base
  has_one :safe
  has_many :contacts
end

安全模型

class Safe < ActiveRecord::Base
  belongs_to :user
end

CreateSafes迁移文件

class CreateSafes < ActiveRecord::Migration
  def change
    create_table :saves do |t|
      t.string :safe_key

      t.timestamps
    end
  end
end

CreateUsers Migration

class CreateUsers < ActiveRecord::Migration
  def change
    create_table :users do |t|
      t.string :email
      t.string :password

      t.timestamps
    end
  end
end

我真的不确定是否将user_id值添加到安全迁移表中,或者我是否只使用safe_key,因为这将是一个完全唯一的值。任何帮助和智慧将不胜感激。感谢。

1 个答案:

答案 0 :(得分:1)

是,手动将user_id添加到安全表。在关联中,rails使用:belongs_to将外键存储在表中,然后您可以使用safe.user来获取用户,或使用user.safe来获取安全保护。