我有两个模型:users
和emails
。
我已将这些表分开,因为我们希望用户能够在同一个用户帐户中收到许多电子邮件,并且还可以轻松检查帐户中电子邮件值的唯一性。
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