首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NoMethodError in Users#edit

NoMethodError in Users#edit
EN

Stack Overflow用户
提问于 2012-03-02 11:59:51
回答 2查看 490关注 0票数 1

我有一个rails应用程序,您可以编辑您的帐户信息。单击edit my information按钮时,单击链接时会收到以下错误。

NoMethodError in Users#edit -用于nil的未定义方法“`name”:NilClass

它指向我的用户/_form.html.erb的下面一行

代码语言:javascript
复制
<% else %> <td><%= @user.admin_level.name %>

我的全部跟踪记录如下:帕斯蒂

user.admin_level.name似乎有问题,但我似乎无法理解的是,为什么会发生此错误,admin_level实体中也存在属性名。

我的users_controller有以下def编辑:

代码语言:javascript
复制
 # GET /users/:id/edit
  def edit
    if @user
      respond_to do |format|
        format.html # edit.html.erb
      end
    else
    redirect_to routing_error_path
    end
  end

似乎我遗漏了什么,我需要在我的users_controller中定义名称吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-02 12:06:41

它仅仅意味着<%= @user.admin_level %>nil。这可能是因为用户没有分配admin_level。因此,在零上调用.name,结果是一个noMethodError。

正确的是<%= @user.admin_level.name if @user.admin_level %>,或者可能是<%= @user.admin_level.try(:name) %> (两者都只在admin_level不是零的情况下显示)

票数 1
EN

Stack Overflow用户

发布于 2012-03-02 12:07:48

从例外来看,@user.admin_level似乎是零。

您能检查这是否真的设置(使用调试-语句)并张贴@用户是如何设置的吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9532941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档