新手问题 rails 新手问题,详细见明细

davidminaki · 2015年06月20日 · 最后由 davidminaki 回复于 2015年06月20日 · 1730 次阅读

做一个活动报名模块。 显示活动信息时 c 端代码

def show
  @event.view!
  @reglists =  @event.reglists.all
  @reglist = @event.reglists.build
end

V 端代码显示报名列表

<% @event.reglists.each do |reg| %>
    <tr>
      <td><%= reg.user.name %></td>
      <td><%= reg.regnum %></td>
      <td><%= reg.phonenum %></td>
      <td><%= reg.remark %></td>
    </tr>
<% end %>

页面报错信息

NoMethodError at /events/9
undefined method `name' for nil:NilClass

调试信息

>> @event.reglists.each
=> #<Enumerator: [#<Reglist id: 3, event_id: 9, phonenum: "111111", remark: "111", created_at: "2015-06-03 19:44:19", updated_at: "2015-06-03 19:44:23", regnum: 2, user_id: 3, sex: nil>, #<Reglist id: 2, event_id: 9, phonenum: "182222222", remark: "此路线走过几次,GPS轨迹辅助,此路线不设收队。欢迎大神认路认领:领队、收队。报名时备注体能和A、B...", created_at: "2015-06-03 19:43:54", updated_at: "2015-06-03 19:43:59", regnum: 1, user_id: 2, sex: nil>, #<Reglist id: nil, event_id: 9, phonenum: nil, remark: nil, created_at: nil, updated_at: nil, regnum: nil, user_id: nil, sex: nil>]:each>

也就是说,在显示报名列表时候,@event.reglists.all 也会将@reglist 显示出来,如果将@reglist不显示

需要 登录 后方可回复, 如果你还没有账号请 注册新账号