У меня есть такие отношения: у пользователя может быть ноль или одна собака, но собака должна принадлежать кому-то.
# dog.rb
class Dog < ActiveRecord::Base
belongs_to :user
end
# user.rb
class User < ActiveRecord::Base
has_one :dog
end
Я хочу определить следующие области:
User.with_a_dog
User.without_a_dog
Я могу сделать это для первого случая, потому что соединения по умолчанию являются INNER JOIN в rails:
scope :with_a_dog, :joins(:dog)
1 / Достаточно ли хорошо это решение для первой области?
2 / Что бы вы сделали для второго?
3 / (в некоторой степени связано) Есть ли лучший способ сделать это? :
# user.rb
def has_a_dog?
!self.dog.nil?
end
Спасибо за вашу помощь!