Почему таблица соединений обновляется, когда я вызываю @ user.connections для следующего?
Модель соединения
class Connection < ActiveRecord::Base
belongs_to :left_nodeable, :polymorphic => true
belongs_to :right_nodeable, :polymorphic => true
# Statuses:
PENDING = 0
ACCEPTED = 1
named_scope :pending, :conditions => { :connection_status => PENDING }
named_scope :accepted, :conditions => { :connection_status => ACCEPTED }
end
Модель пользователя
class User < ActiveRecord::Base
has_many :left_connections, :as => :left_nodeable, :class_name => 'Connection', :conditions => {:left_nodeable_type => 'User', :right_nodeable_type => 'User'}
has_many :right_connections, :as => :right_nodeable, :class_name => 'Connection', :conditions => {:right_nodeable_type => 'User', :left_nodeable_type => 'User'}
def connections
self.left_connections << self.right_connections
end
end
ЕслиЯ использую:
def connections
self.left_connections + self.right_connections
end
Тогда модель работает нормально, но я не могу использовать ни один из моих методов named_scope.
Так что я думаю, мои вопросы сводятся к ...
В чем разница между операторами «<<» и «+» в ActiveRecord?Почему использование «<<» изменяет базу данных, а использование «+» приводит к сбою методов named_scope? </p>