未初始化的常量ProfilesController

时间:2013-04-10 18:58:17

标签: ruby-on-rails-3

我的个人资料控制器上有一个错误“未初始化的常量ProfilesController”。这是profiles_controller.rb:

class ProfilesController < ApplicationController
  def new
    @profile = Profile.new
  end

  def create
    @profile = Profile.new(params[:profile])

    if @profile.save
      redirect_to profile_path, notice: I18n.t('.profile.created')
    else
      render action: "new"
    end
  end
end

这是routes.rb:

  resources :profiles, only: [:new, :create]

这是rake路线的输出:

   profiles POST   /profiles(.:format)                     profiles#create
   new_profile GET    /profiles/new(.:format)                 profiles#new

当我点击“new_profile_path”的链接时,我收到错误,但对我来说一切似乎都好吗?控制器名称是复数,路由可以吗?

3 个答案:

答案 0 :(得分:2)

您很可能拼错了控制器文件。确认该文件是真的:`/app/controllers/profiles_controller.rb'

答案 1 :(得分:1)

真奇怪,我创建了一个带有生成器的Books控制器,将所有内容重命名为Profiles然后它正常工作。据我所知,路线是相同的。奇怪....

答案 2 :(得分:1)

当我检查控制器的名称是'profile_controller.rb'时,我遇到了同样的问题(虽然我手动创建了它)。但在定义中它是“ProfilesController”。

class ProfilesController&lt; ApplicationController中

def index
end

def new     
    @profile =  Profile.new
end

def create  
end

因此,如果您的控制器名称正确并且您已添加路线(“资源:配置文件”),那么它将按预期工作