Ошибка маршрутизации в Ruby on Rails 3 - PullRequest
5 голосов
/ 24 сентября 2011

Я новичок в Ruby on Rails Я получаю эту ошибку

неинициализированная константа WelcomeController

после создания примера проекта. Я включил

root :to => 'welcome#index'

в rout.rb.

Ответы [ 6 ]

12 голосов
/ 24 сентября 2011

Когда вы говорите

root :to => 'welcome#index'

вы говорите Rails отправлять все запросы на / методу index в WelcomeController. Сообщение об ошибке говорит о том, что вы не создали класс WelcomeController. У вас должно быть что-то вроде этого:

class WelcomeController < ApplicationController
  def index
    # whatever your controller needs to do...
  end
end

in app/controllers/welcome_controller.rb.

5 голосов
/ 20 ноября 2012

Я очень новичок в Rails и также столкнулся с этой ошибкой, следуя инструкции Rails Tutorial от Michael Hartl.Проблема, с которой я столкнулся, заключалась в том, что в файле config/routes.rb я просто раскомментировал root :to => "welcome#index":

# just remember to delete public/index.html.
root :to => "welcome#index"

, но со структурой sample_app было то, что "welcome # index" должно быть "pages # home"'вместо этого, поскольку все изначально было настроено через контроллер "страниц".

root :to => 'pages#home'

Это даже прямо в книге, но я просто упустил это из виду и потратил некоторое время после этого, пытаясь выяснить, где япошло не так.

1 голос
/ 20 мая 2014

Если вы не сгенерируете страницу с именем welcome, просто сгенерируйте страницу как: $ rails generate controller pagename index. Итак, в: config-> rout.rb вы должны отредактировать root 'welcome # index' в root 'pagename # index'

1 голос
/ 29 октября 2013

rails generate controller welcome index

1 голос
/ 24 сентября 2011

Убедитесь, что WelcomeController определен в файле с именем welcome_controller.rb

0 голосов
/ 12 июня 2017

Оставьте это, если хотите, чтобы он был корневым контекстом после генерации желаемых частей.

Rails.application.routes.draw do
  root 'welcome#index'
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...