在我的模型中,我有几个关联,例如:
has_many :posts
has_many :comments, :through => :posts
belongs_to :user
我还有一个方法,我想收集关联对象,由参数指定:
def selected_associations(*associations)
associations.collect{|association| self.association}
end
问题是,如何传入*associations
?我已尝试使用一系列符号:
self.selected_associations([:posts, :comments])
但这不起作用。也没有将它们作为字符串传递。也许我没有以正确的方式接近这个?
答案 0 :(得分:1)
这里有两点。
首先,self.association
无效。您需要将其更改为:
def selected_associations(*associations)
associations.collect{|association| self.public_send(association)}
end
关于方法调用,您需要传递哈希。
selected_associations :posts, :comments
最佳。