【问题标题】:Calling ".parent" on a newly instantiated associated "child" object returns "nil"在新实例化的关联“子”对象上调用“.parent”返回“nil”
【发布时间】:2012-09-11 09:09:40
【问题描述】:
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 名称的实例方法,并且必须在保存rp 之前调用。运行上述代码后调用它会引发undefined method `name' for nil:NilClass 错误。

【问题讨论】:

  • 你保存角色了吗?有点困惑r = Role.new(name: 'Admin')r.save 然后试试

标签: ruby-on-rails activerecord has-many


【解决方案1】:

那又怎样:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-05
    • 1970-01-01
    相关资源
    最近更新 更多