1
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错误。

4

1 回答 1

0

那么呢:

p = r.privileges.build(role: r)

要使其工作,您应该:role在 attr_accessible 列表中启用。

于 2012-09-11T12:34:27.800 回答