如何访问特定的对象字段?

Posted

技术标签:

【中文标题】如何访问特定的对象字段?【英文标题】:How to access specific object fields? 【发布时间】:2016-07-14 16:28:22 【问题描述】:

我现在正在构建一个基本的基本社交媒体应用程序。

我有一个用户类和一个状态类。

对于每个状态,都有一个“创建者”(用户对象)和一个“主题”(该状态所涉及的用户对象)。我能够使用acts_as_taggable_on gem 创建标签。最终发生的是当用户去创建帖子时,他/她可以从下拉菜单中选择另一个用户。然后存储所选用户的 id 属性。

现在我正在尝试链接到所选用户的个人资料。这是我在个人资料页面上显示状态的代码。

    <% if @statuses %>
      <% @statuses.each do |status| %>
        <div class="well">
          <%= status.content %>
          <br></br>

          #link to user who's associated with the tagId
          <%= link_to User.find(status.tag_list).profile_name, user_profile_path(User.find(status.tag_list).profile_name) %>
          <hr />
          <%= link_to time_ago_in_words(status.created_at), status_path(status) %> ago
        </div>
      <% end %>
    <% end%>

这是上面代码中断的那一行

              <%= link_to User.find(status.tag_list).profile_name, user_profile_path(User.find(status.tag_list).profile_name) %>

谁能帮我解决这个问题?

【问题讨论】:

定义“代码中断” 贴出错误信息很有帮助 【参考方案1】:

这一行失败并不奇怪:

<%= link_to User.find(status.tag_list).profile_name, user_profile_path(User.find(status.tag_list).profile_name) %>

几点:

把它分成多行会更简洁一些 我怀疑您的问题是因为您将 profile_name 传递给 user_profile_path 而不是 id,但如果没有看到您的路线我无法确定。

尝试以下方法:

<% profile_user = User.find(status.tag_list) %>
<%= link_to profile_user.profile_name, user_profile_path(profile_user.id) %>

【讨论】:

以上是关于如何访问特定的对象字段?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Swift (Firestore) 访问特定文档字段

如何从反射访问中过滤特定字段?

如何在 Swift 中从 Cloud FireStore Firebase 访问特定字段

如何从Swift中的Cloud FireStore Firebase访问特定字段

访问模板中的ModelForm queryset对象字段

如何访问 Django 中查询集的特定字段?