Rails 3 连接 Active Record 查询

发布于 2024-12-04 16:17:41 字数 630 浏览 0 评论 0原文

我被困在使用活动记录 3.0

表 A 连接两个表
身份证名称
1 xcv

表B #a_id 是foreign_key
id 日期 a_id
1 9/15 1

如何使用活动记录查询以获取输出
id 日期 a_name
1 9/15/ xcv

当我在模型 B 中执行时,

B.joins(:A)

我得到以下 sql

SELECT "B".* FROM "B" INNER JOIN "A" ON "A"."ID" = "B"."A_ID"

当我在数据库上查询它时,它给出正确的输出,但 Rails 记录器有错误的输出,

#<B id: 1, date"9/15/11", a_id: 2>

我想要的是

#<B id: 1, date"9/15/11", a_name: xcv>

关系如下

A has_many :B
B belongs_to :A

非常感谢任何帮助..

I am stuck at join two tables using active record 3.0

Table A
id name
1 xcv

Table B #a_id is foreign_key
id date a_id
1 9/15 1

How to query using active record to get output as
id date a_name
1 9/15/ xcv

When I do

B.joins(:A)

in Model B than I get following sql

SELECT "B".* FROM "B" INNER JOIN "A" ON "A"."ID" = "B"."A_ID"

When I query it on our DB it give correct output but rails logger has wrong output

#<B id: 1, date"9/15/11", a_id: 2>

I want is

#<B id: 1, date"9/15/11", a_name: xcv>

Relation is as follow

A has_many :B
B belongs_to :A

Any help is really appreciated..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

記柔刀 2024-12-11 16:17:41

我相信您正在寻找的是

@bees = b.includes(:a).all # this will join A and eager load your A's

然后在您的视图中,您可以输出

<% @bees.each do |b| %>
  <%= b.a.name %>, <%= b.a.date %>
<% end %>

或使用它以类似的方式

I believe what you're looking for is

@bees = b.includes(:a).all # this will join A and eager load your A's

then on your view, you can output

<% @bees.each do |b| %>
  <%= b.a.name %>, <%= b.a.date %>
<% end %>

or work with it in a similar manner

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文