Подтвердить что ты не робот

Где находится страница "Добро пожаловать на борт" по умолчанию в моем приложении?

Я просмотрел мои каталоги приложений, и я не могу найти страницу html для страницы приветствия на странице по умолчанию. Я также не могу найти маршрут для страницы приветствия приветствия по умолчанию в routes.rb. Как мой rails-приложение маршрутизирует http://localhost:3000/ на несуществующую страницу в моем приложении?

Сервер rails создает эту информацию:

Started GET "/" for 127.0.0.1 at 2013-07-31 02:00:13 -0600
Processing by Rails::WelcomeController#index as HTML
  Rendered /Users/7stud/.rvm/gems/[email protected]_rails_4_0/gems/railties-4.0.0/lib/rails/templates/rails/welcome/index.html.erb (0.1ms)
Completed 200 OK in 3ms (Views: 2.5ms | ActiveRecord: 0.0ms)

Итак, мне кажется, что есть контроллер, похороненный в драгоценном камне где-то, обрабатывающий запрос.

4b9b3361

Ответ 1

С Rails 4 страница "Добро пожаловать на борт" больше не находится в public/index.html. Это, как вы уже обнаружили, находится внутри одного из камней Rails.

Итак, вы уже сами ответили на вопрос; страница "Добро пожаловать на борт" - в вашем случае - находится в /Users/7stud/.rvm/gems/[email protected]_rails_4_0/gems/railties-4.0.0/lib/rails/templates/rails/welcome/index.html.erb

Чтобы избавиться от него, следуйте инструкциям на странице. В основном это:

  • Создать контроллер
  • Добавьте корневой маршрут в config/routes.rb для маршрутизации на этот вновь созданный контроллер.

Что касается того, как запрос к вашему приложению заканчивается на контроллере внутри рельсов, позвольте вставить в драгоценный камень: Внутри Rails::Application::Finisher мы находим это:

initializer :add_builtin_route do |app|
  if Rails.env.development?
    app.routes.append do
      get '/rails/info/properties' => "rails/info#properties"
      get '/rails/info/routes'     => "rails/info#routes"
      get '/rails/info'            => "rails/info#index"
      get '/'                      => "rails/welcome#index"
    end
  end
end

Этот блок добавляет несколько маршрутов к вашему приложению при работе в режиме разработки - одним из них является маршрут к действию "Добро пожаловать на борт" : get '/' => "rails/welcome#index"

Это - как и любой другой инициализатор - выполняется при запуске вашего сервера приложений (выполняется rails server или, как вы это делаете). В случае Finisher весь его инициализатор запускается после запуска всех других инициализаторов.

Обратите внимание, как маршруты добавляются так, чтобы они отображались последними в Routeset. Это, в сочетании с тем фактом, что Rails использует первый сопоставимый маршрут, который он находит, гарантирует, что эти маршруты по умолчанию будут использоваться только в том случае, если не определен какой-либо другой маршрут.