1

我的 Profiles 控制器上有一个错误“未初始化的常量 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”的链接时,我收到错误消息,但对我来说一切似乎都正常吗?控制器名称是复数,路由可以吗?

4

3 回答 3

2

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

于 2013-04-10T20:26:49.603 回答
1

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

于 2013-04-11T07:23:30.017 回答
0

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

类 ProfilesController < ApplicationController

def index
end

def new     
    @profile =  Profile.new
end

def create  
end

结尾

因此,如果您的控制器名称是正确的并且您已经添加了路由(“resources :profiles”),那么它将按预期工作

于 2016-05-25T13:11:23.860 回答