Rails,通过与子元素的属性值关联来验证has_many

时间:2017-07-22 19:13:50

标签: ruby-on-rails ruby

我有三种模式:

inline fun ViewManager.observableWebView() = observableWebView {}

这意味着class User < ApplicationRecord has_many :game_accounts has_many :favorite_game_accounts, through: :game_account_favorites, source: :game_account end class GameAccount < ApplicationRecord belongs_to :user has_many :favorite_users, through: :game_account_favorites, source: :user end class GameAccountFavorite < ApplicationRecord belongs_to :user belongs_to :game_account validates_presence_of :user, :game_account validates_uniqueness_of :user, scope: :game_account_id end 可以拥有自己的User,其他GameAccounts可以将其添加到收藏夹中。

我添加了Users以防止一个用户拥有相同scope的多个收藏夹。但是,有一个问题。用户可以添加到收藏夹他自己的GameAccount 。如何防止用户将自己的GameAccount添加到收藏夹?

1 个答案:

答案 0 :(得分:1)

我不确定是否有针对您的内置Rails验证,所以我建议您自己编写自定义Rails验证。

在您的特定情况下,您可以在GameAccountFavorite个实例上验证game_account.user_id是否等于user.id

performing custom validation in Rails

有很多方法