(это не тот код, который я использую, хотя это подводит итог идеи о том, что я хочу сделать)
class Connection < ActiveRecord::Base
belongs_to :connection1, :polymorphic => true
belongs_to :connection2, :polymorphic => true
end
class User < ActiveRecord::Base
has_many :followers, :class_name => 'Connection', :as => :connection1
has_many :followings, :class_name => 'Connection', :as => :connection2
end
Мой вопрос заключается в том, что я хочу знать, как я смогу создать метод, называемый «сетью», чтобы возвращаемый результат не был массивом. Вот так
u = User.first
u.network # this will return a merged version of :followings and :followers
Так что я все еще смогу сделать это:
u.network.find_by_last_name("James")
ETA:
Или, хм, я думаю, что мой вопрос действительно сводится к тому, возможно ли создать метод, который объединит 2 ассоциации has_many таким образом, что я все еще могу вызывать его методы find_by.