【问题标题】:Rails: undefined method `>=' for nil:NilClassRails:nil:NilClass的未定义方法`> ='
【发布时间】:2014-09-10 04:55:43
【问题描述】:

我得到的错误是:undefined method >= for nil:NilClass 突出显示这一行:

<%= content_tag :td, class: "tier#{pg.tier}" do -%>

我不确定是什么问题。它过去一直有效,但现在不行了。如您所见,打印出pg.name 就在问题所在的行上方,所以我不知道为什么说pgnil

查看

<% @point_guards.each do |pg| %>
    <% puts pg.name # working %>
    <%= content_tag :td, class: "tier#{pg.tier}" do -%>
        <%= link_to pg.name, "/#{@team.name.downcase}/#{pg.link}" %>
    <% end -%>
<% end %>

Player.rb

def tier
    return 1 if overall_rank >= 1 && overall_rank <= 15
    return 2 if overall_rank >= 16 && overall_rank <= 45
    return 3 if overall_rank >= 46 && overall_rank <= 75
    return 4 if overall_rank >= 76 && overall_rank <= 105
    return 5 if overall_rank >= 106 && overall_rank <= 135
    return 6 if overall_rank >= 136 && overall_rank <= 175
end

Githubhttps://github.com/adamzerner/sports_site

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    好吧,您在该行拨打pg.tierpg.tier 尝试比较overall_rank,但是根据错误信息,overall_ranknil

    【讨论】:

    • 这很奇怪。我刚刚检查了控制台,player.overall_rank 正在返回应有的排名。你确定它说overall_ranknil 而不是说pgnil
    • 噢,你是对的,有些玩家的overall_ranknil。一秒……
    • 所以我将return 7 if overall_rank == nil 添加到Player.rb。为什么不能解决问题?
    • 您是否将其添加为tier 的第一行?
    • 所以你还在尝试比较overall_rank 12 次,然后再检查它是否是nil
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    相关资源
    最近更新 更多