【发布时间】:2016-03-13 20:50:54
【问题描述】:
我在用户和帐户之间有关系:
用户属于一个帐户。一个帐户可以有多个用户。
关系有效,您可以在以下查询中看到:
2.1.4 :010 > User.last.account.name
User Load (2.0ms) SELECT "users".* FROM "users" WHERE "users"."deleted_at" IS NULL ORDER BY "users"."id" DESC LIMIT 1
Account Load (2.4ms) SELECT "accounts".* FROM "accounts" WHERE "accounts"."deleted_at" IS NULL AND "accounts"."id" = $1 LIMIT 1 [["id", 4]]
=> "Account A"
但是,如果我显示用户的索引视图,当我尝试显示帐户名称时会出现错误:
好的
<%= user.account_id %>
KO
<%= user.account.name %>
错误:
NoMethodError in Users#index
undefined method `name' for nil:NilClass
<tbody>
<% @users.each do |user| %>
<tr>
<td><a href="/accounts/<%= user.account_id %>"><%= user.account.name %></a></td>
【问题讨论】:
-
您的一些用户没有关联帐户
-
错误提示帐户为 nil。你能发布你声明belongs_to和has_many关系的模型吗?
-
其中一个用户没有账号,就这么简单。
-
@Lut - 惯用方式是
user.account && user.account.name
标签: ruby-on-rails ruby ruby-on-rails-4 associations