【问题标题】:"Couldn't find User without an ID" accessing related model“找不到没有 ID 的用户”访问相关模型
【发布时间】:2015-07-22 08:12:42
【问题描述】:

更新问题:

我正在尝试访问类实例的 id 并使用它来查找该实例。这是上下文:

  <% @affinity.each do |a| %>
    <tr>
      <td><%= a.user_A_id %></td>
      <td><%= User.find(a.user_A_id).nickname %></td>
      <td><%= a.user_B_id %></td>
      <td><%= User.find(a.user_B_id).nickname %></td>
      ...

每个affinity 都有一个名为User_A_idUser_B_id 的变量,它们分别代表用户A 和B 的ID。我想使用这些ID 来访问用户A 和用户B 的实例,并且随后是每个的nickname。我该怎么做?

我目前收到此错误:

Couldn't find User without an ID

谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby database hash


    【解决方案1】:

    如果您定义了正确的关系,您可以直接访问这些用户:

    <%= a.user_A.nickname %>
    

    顺便说一句,您不必将这些 id 转换为符号以使该代码正常工作,并且您可以使用 User.find(a.user_A_id),因为 where 返回一个数组,find 如果找到对象,则返回该对象。

    【讨论】:

    • 我做了这些修改。现在我收到此错误:“找不到没有 ID 的用户”
    • 您确定字段user_A_id 包含值吗?您应该尝试我的第一个建议并将相关对象称为a.user_A.nickname
    • 谢谢!这就是问题所在。
    猜你喜欢
    • 2017-10-02
    • 2012-05-24
    • 1970-01-01
    • 2019-05-03
    • 2013-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多