Rails加入表唯一性

时间:2015-07-15 21:18:13

标签: ruby-on-rails join activerecord

我正在尝试通过user_id&来验证联接表Employee中行的唯一性。 restaurant_id。

其他帖子提示类似这样的内容,但它不能用“:id”作为属性,因为在测试时它仍然会应用重复项。

validates_uniqueness_of :id, :scope => [:user_id, :restaurant_id]

也许铲子作业@restaurant.users << @user不能验证唯一性?

型号:

class Restaurant < ActiveRecord::Base
    has_many :employees
    has_many :users, through: :employees
end

class User < ActiveRecord::Base
  has_many :employees
  has_many :restaurants, through: :employees
end

class Employee < ActiveRecord::Base
    belongs_to :restaurant
    belongs_to :user
end

1 个答案:

答案 0 :(得分:0)

我能找到的最好的解决办法是在控制器内验证如下:

if @restaurant.users.include?(@user)

在我的情况下哪个是好的,因为我只在我的应用程序中的一个地方执行该操作,但我想知道是否有更好的方法使其在其他情况下更干。