【问题标题】:getting message School:0x00559eba30b8b8 instead of displaying school name收到消息 School:0x00559eba30b8b8 而不是显示学校名称
【发布时间】:2017-03-03 13:48:31
【问题描述】:

我正在尝试显示与成员相关的学校名称,但我得到的是 School:0x00559eba30b8b8,而不是名称。

<% @members.each do |member| %>
 <%= member.name %>
 <%= member.email %>
 <%= member.school %>
<% end %>

结果:John john@john.com #School:0x00559eba30b8b8

更新:

使用 school_id 我得到了学校的 id,但仍然不知道如何得到名字。

我怎样才能得到学校的名字? 非常感谢

【问题讨论】:

  • 向我们展示您的控制器和学校 + 会员模型

标签: ruby-on-rails ruby model-view-controller


【解决方案1】:

由于school不是强制属性,所以不能只查询name,这里应该使用try

<%= member.school.try :name %>

【讨论】:

    【解决方案2】:

    假设您在成员表中有school_id,您需要打印school.name 而不是school

    <% @members.each do |member| %>
     <%= member.name %>
     <%= member.email %>
     <%= member.school.try(:name) %>
    <% end %>
    

    注意:member.school 将返回一个 School 的实例,而您只想打印名称。

    【讨论】:

    • 感谢 Deepak,这就是解决方案!
    【解决方案3】:

    使用

    <%= member.school.try(:name) %>
    

    注意:- 假设您的 school 具有属性“名称”

    也在你的控制器中找到@members 使用'includes',类似

    @members = member.where().includes(:school)
    

    【讨论】:

    • nil:NilClass 的未定义方法“名称”
    猜你喜欢
    • 1970-01-01
    • 2011-11-26
    • 1970-01-01
    • 1970-01-01
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多