Rails 关联:某物有很多,但每个其他实体只有一个

Rails associations: something has many, but only one per other entity

我有三个模型。 UserApplicationApplicationVote

以下是正确的:

  1. 一个ApplicationVote同时属于一个User和一个Application
  2. A User 可以对 Application 投票,从而创建 ApplicationVote
  3. 一个用户可以对任意数量的申请进行投票,但每个申请只能投一票。

如果有一种说法User has_many ApplicationVotes but only one per Application...它会是什么样子?

像这样

应用层,进入application_vote.rb模型文件

validates_uniqueness_of :application_id, scope: :user_id

数据库级别,在迁移文件中

add_index :application_votes, [:user_id, :application_id], unique: true