如何访问特定的对象字段?
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 中从 Cloud FireStore Firebase 访问特定字段