我有两个模型User
,Item
它们与has_many through
关联有关。我想创建没有项目的用户,但项目创建应该验证至少一个用户的存在。我通过以下方式创建项目:
@user.items.create!(name: "Ball")
在创建项目之前,我可以做些什么来创建用户存在的有效验证?
我尝试了以下方法:
- 模型
validate :users, presence: true
中的Item
- 模型
validate :item_users, presence: true
中的Item
- 连接模型
validate :user, :item, presence: true
中的aItemUser
- a
validate :should_have_at_least_one_user
在Item
模型中具有一个私有函数error.add(:base, 'select at least one user') if self.users.count < 1
这些方法都没有奏效。我认为问题是某种竞争条件,因为当我按照以下方式创建项目时,一些验证确实有效。
@item.new(name: "Ball")
@item.users << @user
@item.save
有任何想法吗?