我有用户。用户has_many:组织
如果我这样做:
User.find(:all).select {|u| u.organizations.first.name }
它返回:
NoMethodError: You have a nil object when you didn't expect it!
The error occurred while evaluating nil.name
from (irb):33
from (irb):33:in `select'
from (irb):33
长话短说:
我正在尝试从每个用户中找到第一个组织的名称。
答案 0 :(得分:8)
因为您的某个用户没有任何组织,所以organization.first是nil
您可以通过
来防止这种情况发生User.find(:all).select {|u|
u.organizations.first.name unless u.organizations.size == 0}