validates_belongs_to
This is a simple validator which validates an association belongs to the same owner.
Usage
Add to your Gemfile:
gem 'validates_belongs_to'
Add the validator to your model:
class Car < ActiveRecord::Base
validates :warehouse, :belongs_to => :user
# or you can use validates_belongs_to :warehouse, :user
end
Example code
class User < ActiveRecord::Base
has_many :warehouses
has_many :cars
end
class Warehouse < ActiveRecord::Base
has_many :cars
belongs_to :user
end
class Car < ActiveRecord::Base
belongs_to :user
belongs_to :warehouse
validates :warehouse, :belongs_to => :user
end
user = User.create
warehouse = user.warehouses.create
user_2 = User.create
warehouse_2 = user_2.warehouses.create
car = warehouse.cars.create # Works fine
car.warehouse = warehouse_2
car.save! # Validation failed: Warehouse does not belong to user