类 是否可以从模块预加载?

Is preloading possible for classes from modules?

我正在使用投票 gem acts_as_votable。这只是为了解释,我的 问题比 'question about gem' 更广泛 。如果您有相同情况的任何示例,但另一个 'dressing' - 没问题。

简而言之,我想预加载投票和帖子。但这并不容易,因为 Vote class 来自模块。所以我只能通过调用 ActsAsVotable::Vote 来访问它。并做类似

的事情

@posts = Post.where(user_id: user.id).includes(:vote)

导致错误:

Association named 'vote' was not found on Post; perhaps you misspelled it?

问题:有什么方法可以从来自外部模块的 classes 预加载数据吗?

这可能会起作用:

@posts = Post.where(user_id: user.id).includes(:votes_for)

来源:https://github.com/ryanto/acts_as_votable/blob/599995f7ec5aa0f8a04312768fc956e9003d32d4/lib/acts_as_votable/votable.rb#L38