我有两个名为users
和billing
的表。在users
我有通常的信息,而在billing
(包含user_id
字段供参考)我会按月为每个用户提供余额。我的问题来自于我想列出每月余额。在每月余额页面上,我想显示用户的名称,月份的balanace和其他misc信息,但billing
表仅保存用户的ID。
起初我试过
@mondetail = Billings.find_by_date(201204) #April's billing period
@customer = Users.find_by_id(mondetail.user_id)
适用于一个用户,但是当我想要显示来自多个用户的两个表的信息时,我应该怎么做?或者我最好将user_name
字段添加到billing
表中?
答案 0 :(得分: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 queries问题