У меня есть две модели:
Модель NetworkObject попробуйте описать "хостами". Я хочу иметь правило с источником и назначением, поэтому я пытаюсь использовать оба объекта из одного класса, так как не имеет смысла создавать два разных класса.
class NetworkObject < ActiveRecord::Base
attr_accessible :ip, :netmask, :name
has_many :statements
has_many :rules, :through =>:statements
end
class Rule < ActiveRecord::Base
attr_accessible :active, :destination_ids, :source_ids
has_many :statements
has_many :sources, :through=> :statements, :source=> :network_object
has_many :destinations, :through => :statements, :source=> :network_object
end
Чтобы построить HABTM, я выбрал модель JOIN. поэтому в этом случае я создал модель с именем Statement:
class Statement < ActiveRecord::Base
attr_accessible :source_id, :rule_id, :destination_id
belongs_to :network_object, :foreign_key => :source_id
belongs_to :network_object, :foreign_key => :destination_id
belongs_to :rule
end
Проблема в следующем: правильно ли добавлять два принадлежащих к одному классу с использованием разных иностранных ключей? Я перепробовал все комбинации как:
belongs_to :sources, :class_name => :network_object, :foreign_key => :source_id
но безуспешно ... что-то, что я делаю не так?