2013-04-10 3 views
1

У меня есть ошибка «неинициализированная константа ProfilesController» на моем контроллере Profiles. Это profiles_controller.rb:Неинициализированная константа ProfilesController

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] 

И это выход рек маршрутов:

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

Когда я нажимаю ссылку на " new_profile_path «Я получаю ошибку, но мне все кажется ОК? Имя контроллера несколько, маршруты в порядке?

+0

ли вы создаете контроллер вручную или используете строительные леса? Раньше я сталкивался с подобным поведением при создании контроллеров вручную. – BrMcMullin

+0

Вручную, если он не работает и с генератором. Оба имеют ту же проблему. – John

ответ

1

Действительно странно, я создал контроллер книг с генератором, переименовал все в профили, а затем он работает нормально. Насколько я вижу, маршруты идентичны. Strange ....

2

Вы, скорее всего, неправильно указали свой файл контроллера. Подтвердите, что файл действительно: `/app/controllers/profiles_controller.rb '

+0

Yup, написано правильно – John

1

У меня была такая же проблема, когда я проверял, что имя контроллера было «profile_controller.rb» (я создал его вручную, хотя). но внутри определения было «ProfilesController».

класс ProfilesController < ApplicationController

def index 
end 

def new  
    @profile = Profile.new 
end 

def create 
end 

конец

Так что, если ваше имя контроллера является правильным, и вы добавили маршрут («ресурсы: профили»), то он будет работать, как ожидалось

Смежные вопросы