r = Role.new(name: 'Admin')
=> #<Role id: nil, name: "Admin">
p = r.privileges.build
=> #<Privilege id: nil, role_id: nil>
p.role
=> nil
Privilege
有一个依赖于相关role
名称的实例方法,并且必须在保存r
或之前调用p
。运行上述代码后调用它会引发undefined method `name' for nil:NilClass
错误。