0

我有两个名为usersand的表billing。在users我有通常的信息,而在billing(包含user_id供参考的字段)中,我有每个用户每月的余额之类的东西。我的问题来自当我想列出每月余额时。在每月余额页面上,我想显示用户姓名、当月余额和其他杂项信息,但是该billing表仅包含用户的 ID。

起初我试过

@mondetail = Billings.find_by_date(201204) #April's billing period
@customer = Users.find_by_id(mondetail.user_id)

这对一个用户来说很好,但是当我想显示来自多个用户的两个表中的信息时,我应该怎么做呢?或者我最好在表格中添加一个user_name字段?billing

4

1 回答 1

1

您不需要在控制器中查找用户信息。你可以从Billing模型中得到它。(奇怪的是模型是复数)

# controller
@mondetail = Billings.includes(:user).find_by_date(201204)


# view
<% @mondetail.each |mondetail| %>
 <%= mondetail.user.name %><br />
 <%= number_to_currency mondetail.balance %>
<% end %>

它可以工作,includes但你应该避免N + 1 查询问题

于 2012-10-08T08:00:09.220 回答