【问题标题】:Rails - Controller errorRails - 控制器错误
【发布时间】:2011-08-30 21:46:24
【问题描述】:

刚刚遇到一个非常奇怪的错误,想知道是否有人可以告诉我发生了什么。

首先是我的代码:

class UsersController < ApplicationController
def index
    list
    render("list")
end#end index
def new
    @user = User.new
end#end new
def create
    @user = User.new(params[:user])
    if @page.save
        flash[:notice] = "Page Created Successfully!"
        redirect_to(:action => 'list')
    else
        render('new')
    end#if else
end#end create
def list
    @list = User.order('users.position ASC')
end#end list
def show
    @user = User.find(params[:id])
end#end show
def edit
    @user = User.find(params[:id])
end#end edit
def update
    @user = User.find(params[:id])
    if @user.update_attributes(params[:page])
        flash[:notice] = "Page updated Successfully"
        redirect_to(:action => 'show', :id => @user.id)
    else
        render('edit')
    end#end if else
end#end update
def delete
    @user = User.find(params[:id])
end#end delete
def destroy
    User.find(params[:id]).destroy
    flash[:notice] = "User has been removed"
    redirect_to(:action => 'list')
end#end destroy
end#end class

我在运行服务器并转到 http://localhost:3000/users/new 时遇到类型错误

UsersController 中的名称错误#new

未初始化的常量 UsersController::User Rails.root: C://Documents/Programming/Ruby Files/kccoding

应用程序跟踪 |框架跟踪 |全跟踪 app/controllers/users_controller.rb:7:in 'new'

但我根本没有看到自己尝试这样做......而且我没有得到关于这个错误来自哪里的行号......有什么建议吗?

科兰

编辑~~~我将变量更改为 User.,但我收到“未初始化的常量 UsersController::User”错误。它是我尝试调用的任何方法。

【问题讨论】:

    标签: ruby-on-rails controller typeerror


    【解决方案1】:

    我认为这是你的问题:

    render('new')
    

    应该是:

    render :action => 'new'
    

    在您的 new 方法中尝试。

    【讨论】:

      【解决方案2】:

      你确定不是你想要的User.new

      def new
          @user = User.new
      end#end new
      

      【讨论】:

      • 当我这样做时,我得到了一个未初始化的常量 UsersController::User 错误,所以我不确定......
      • 你在 app/models/user.rb 中定义了 User 模型吗?
      • 是的,我有一大堆关于在那里创建密码等
      【解决方案3】:

      您需要输入而不是 Users.new:

      def new
          @user = User.new
      end#end new
      

      在控制器中到处检查正确的模型名称(用户 => 用户)

      【讨论】:

      • 当我这样做时,我得到了一个未初始化的常量 UsersController::User 错误,所以我不确定..
      • 那么,您的用户模型的名称是什么?
      • 你在 config/routes.rb (resources :users) 中有合适的路由吗?
      • 我已经全部激活了 "match ':controller(/:action(/:id(.:format)))'" 以及获取 'users/new'
      【解决方案4】:

      似乎错误不仅仅来自控制器代码。 请务必从日志文件中发布错误跟踪信息,只能从中找到一些内容。

      【讨论】:

        猜你喜欢
        • 2015-11-03
        • 1970-01-01
        • 2016-11-16
        • 2013-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多