【问题标题】:Rails Tutorial 10.2 - 6: "NoMethodError in Users#edit"Rails 教程 10.2 - 6:“用户#edit 中的 NoMethodError”
【发布时间】:2012-03-13 19:36:20
【问题描述】:

我第一次浏览 Hartl 教程,在第 10 章编辑/更新用户时遇到错误。接下来,我>>应该

错误

NilClass:Class 的未定义方法 `model_name'

从我的用户编辑视图中错误地调用了行

<%= form_for(@user) do |f| %>

从用户控制器编辑方法

    def edit
      @user = User.find(params[:id])
      @title = "Edit user"
    end

在我的用户新视图中使用了类似的代码块,没有任何问题,我不知道为什么这会返回 nil 并且已经尝试过新用户和现有用户。谢谢!

【问题讨论】:

    标签: ruby-on-rails railstutorial.org


    【解决方案1】:

    我刚刚遇到了同样的问题,看起来这是因为您的“编辑”操作未定义。会不会是您没有保存user_controller 文件或忘记定义“编辑”变量?

    【讨论】:

      【解决方案2】:

      错误有点模糊。据说<%= form_for(@user) do |f| %> 中的@user 为零。 @user = User.find(params[:id]) 很可能没有找到任何东西。值得将Rails.logger.debug("Id: #{params[:id]}") 放在@user = User.find(params[:id]) 上方,看看params[:id] 传递了什么。

      这个SO post 也有类似的问题,但教程中没有。异常来自form_for

      【讨论】:

      • 斯科特,感谢您的回复。会尝试你的建议,看看我看到了什么。只是想弄清楚为什么@user 会为零!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多