Rails «Шаблон отсутствует», хотя и существует (3.2.1) - PullRequest
7 голосов
/ 09 февраля 2012

Я только начал использовать Rails и не уверен, что я делаю неправильно.

В маршрутах.rb у меня

resources :pages

В app / controllers / pages_controller.rb Iиметь

class PagesController < ApplicationController
  def index
  end
end

У меня есть макет в app / views / layouts / application.html.erb и шаблон в app / views / home / pages / index.html.erb, который я хочу отобразить при запросе"/ страница".Тем не менее я получаю сообщение об ошибке

Отсутствует шаблон

Отсутствуют страницы шаблона / индекс, приложение / индекс с {: locale => [: en],: format => [:html],: handlers => [: erb,: builder,: coffee]}.Поиск в: * "/ ### / app / views"

Я давно использовал stackoverflow без публикации, но так много разных вещей, кажется, вызывают эту ошибку, что трудно найти ответыдля моего конкретного случая.Также я нуб: 3 Пожалуйста, помогите!

Ответы [ 3 ]

10 голосов
/ 09 февраля 2012

Вы говорите, что у вас есть app/views/home/pages/index.html.erb для представления представления индекса для вашего ресурса страниц. Я думаю, что каталог home/ не требуется.

Другими словами, ваш файл просмотра должен быть app/views/pages/index.html.erb.

4 голосов
/ 09 февраля 2012

Он ищет его в app/views/pages/index, но он есть в app/views/home/pages/index. Эта небольшая разница делает так, что соглашение Rails потеряно.

Если вы должны сохранить новую иерархию каталогов, сделайте это на контроллере:

class PagesController < ApplicationController
  def index
    render :partial => "home/pages/index"
  end
end

Но по умолчанию, если у вас есть ресурс, такой как :pages, он автоматически будет выглядеть как app/views/pages.

0 голосов
/ 02 мая 2015

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...