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

时间:2018-09-06 11:00:49

标签: ruby-on-rails preload

我正在使用投票宝石acts_as_votable。只是为了说明,我的问题要广泛,而不仅仅是“关于宝石的问题”。如果您有相同情况的其他示例,但又有另一个“装扮”,那就没有问题。

我想用两个词预载选票和帖子。但这不是那么容易,因为Vote类来自模块。因此,只能通过调用ActsAsVotable::Vote来访问它。并做类似

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

导致错误:

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

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

1 个答案:

答案 0 :(得分:1)

这可能会起作用:

@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