- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在一个由 Rails 应用程序制作的非常简单的论坛中,我在索引操作中从数据库中获得了 30 个主题,如下所示
def index
@topics = Topic.all.page(params[:page]).per_page(30)
end
topic.posts.first.body
<%= link_to simple_format(topic.name), posts_path(
:topic_id => topic), :data => { :toggle => 'tooltip', :placement => 'top', :'original-title' => "#{ topic.posts.first.body }"}, :class => 'tool' %>
User Load (0.8ms) SELECT "users".* FROM "users" WHERE "users"."id" = 1 ORDER BY "users"."id" ASC LIMIT 1
Post Load (0.4ms) SELECT "posts".* FROM "posts" WHERE "posts"."topic_id" = $1 ORDER BY "posts"."id" ASC LIMIT 1 [["topic_id", 7]]
include(:posts)
@topics = Topic.all.page(params[:page]).per_page(30).includes(:posts)
.includes(:posts).first
最佳答案
这似乎对我有用,所以试一试,看看它是否适合你:
Topic.includes(:posts).where("posts.id = (select id from posts where posts.topic_id = topics.id limit 1)").references(:posts)
posts
子查询中的 topic_id 与
topics
匹配父查询中的 id。与
limit 1
子查询中的子句,结果是每个
Topic
行将只包含 1 个匹配的
Post
行,由于
includes(:post)
急切加载.
.where
时,它引用了一个预先加载的关系,
references
应该附加方法来通知 ActiveRecord 我们正在引用关联,以便它知道在后续查询中执行适当的连接。显然,它在技术上可以在没有该方法的情况下工作,但是您会收到弃用警告,因此您最好将其放入,以免在 future 的 Rails 更新中遇到问题。
关于ruby-on-rails - 急切加载关联的第一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19353507/
我有一个案例,在大多数情况下,对象之间的关系是这样的,因此在关系上预先配置一个渴望(加入)的负载是有意义的。但是现在我遇到了一种情况,我真的不想完成急切的加载。 我是否应该从关系中删除连接负载并将所有
在我的 Grails 项目中,我有以下类: class A { static hasMany = [cs:C] } class B { static hasMany = [cs:C]
想象一下以下简化的 DI 模型: @ApplicationScoped public class A { private B b; @Inject public A(B b)
我使用 MapLoader 将数据从数据存储初始加载到 Hazelcast (InitialLoadMode = EAGER)。我需要从一个物化 View 中加载这些数据,该 View 是为了在加载过
我使用 Hibernate Envers 4.3.10.Final。我有以下两个 JPA 类: public class Factory { private int factoryID;
EJB 似乎被延迟加载 - 每当访问时。 但是,我想急切地初始化它们 - 即每当容器启动时。这是如何实现的(尤其是在 JBoss 中) This topic给出了一些提示,但不是很令人满意。 最佳答案
我是一名优秀的程序员,十分优秀!