在我的应用程序中, anAccount
可以由 aHousehold
或 a拥有User
。用户可以访问他们拥有的帐户,以及他们家庭拥有的帐户。我已经定义accessible_accounts
了,这给了我一个家庭和用户帐户的数组,但是有没有办法得到与关系相同的结果,所以我可以用更多的条件链接它?顺序不重要(确实可以通过进一步的链接来设置)
class User < ActiveRecord::Base
has_many :accounts, as: :owner
belongs_to :household
def accessible_accounts
ua = accounts.to_a
ha = []
if household
ha = household.accounts.to_a
end
(ua + ha).uniq
end
end
class Household < ActiveRecord::Base
has_many :users
has_many :accounts, as: :owner
end
class Account < ActiveRecord::Base
belongs_to :owner, polymorphic: true
end