1

Profiles コントローラーで「uninitialized constant 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」でした。

class ProfilesController < ApplicationController

def index
end

def new     
    @profile =  Profile.new
end

def create  
end

終わり

したがって、コントローラー名が正しく、ルート ("resources :profiles") を追加していれば、期待どおりに機能します。

于 2016-05-25T13:11:23.860 に答える