两个模型之间有两种不同的关系

时间:2015-08-08 04:15:52

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

我有两个模型:usersemails

enter image description here

我已将这些表分开,因为我们希望用户能够在同一个用户帐户中收到许多电子邮件,并且还可以轻松检查帐户中电子邮件值的唯一性。

primary_email_id是唯一email的FK,而user也有许多emails。我怎么说在rails模型中?

我在尝试

class User < ActiveRecord::Base
  # relations
  has_many :emails
  has_one :primary_email
end
…
class Email < ActiveRecord::Base
  # relations
  belongs_to :user
end

这是对的吗?当我说primary_email我正在引用emails表时,rails如何知道?

顺便说一下,两次迁移都是:

create_table :users do |t|
  t.string :username
  t.string :first_name
  t.string :last_name
  t.binary :password
  # t.integer :primary_email

  t.timestamps null: false
end

create_table :emails do |t|
  # t.integer :user
  t.string :email
  t.boolean :verified

  t.timestamps null: false
end

add_reference :users, :primary_email, references: :emails, index: true, foreign_key: true
add_reference :emails, :user, index: true, foreign_key: true

0 个答案:

没有答案