Вопрос

Я настраиваю Ruby on Rails на свежую инсталляцию Snow Leopard.После сражения (и избиение) Проблемы с MySQL и Sphinx, я застрял на глупой ошибке, связанной с HAML.

По сути, я получаю ошибку отсутствующего шаблона для каждого представления, использующего HAML.Я могу добавить пустой файл xxx.html.erb, и (пустая) страница загрузится нормально.Но xxx.html.haml выдает ошибку, хотя этот файл определенно существует в соответствующем каталоге.

Вот ошибка с сервера разработки:

ActionView::MissingTemplate (Missing template sections/index.erb in view path app/views):
  haml (2.2.4) rails/./lib/sass/plugin/rails.rb:19:in `process'

Я использую драгоценный камень haml (2.2.4), драгоценный камень rails (2.3.4) и ruby 1.8.7.Я действительно запускал haml -rails .из корневого каталога моего приложения RoR;файл init находится в каталоге vendor/plugins/haml.Я подтвердил, что "требуется 'haml'" => true через IRB.

Мы будем признательны за любую помощь!

В ответ на Yaraher:

Попробовал отменить и переустановить, что не вызвало никаких ошибок, за исключением rdocs ("Не удалось найти главную страницу README.rdoc").

В скрипте / консоли:

>> require 'haml'
=> []

Обновить:

Установка старой версии Rails, которая, как известно, работала с HAML в этом проекте, похоже, "устранила" проблему.Мне все равно было бы любопытно услышать реальный ответ на эту проблему - я не хочу застрять на 2.3.2.

sudo gem install -v 2.3.2 rails

Обновление 2:

Это определенно вызвано разницей между Rails 2.3.2 и 2.3.4.С установленными обоими драгоценными камнями я могу установить, какой из них используется в моем файле environment.rb.HAML отлично работает с 2.3.2 и прерывается, как описано в 2.3.4.

Это было полезно?

Решение

Пришло время для неловкого ответа на этот вопрос:

Существует разница между Rails 2.3.2 и 2.3.4, которая не распознает xxx.haml.html файлы как файлы, которые должны быть проанализированы HAML (или ERB);это прекрасно работало в версии 2.3.2.Файлы HAML всегда должны иметь имена xxx.html.haml кстати, так это даже не ошибка.

Я не понимал, что это была проблема, потому что у меня была включена опция "скрывать расширения файлов" (включена по умолчанию) в моей новой установке Snow Leopard.Поэтому, когда я попытался переключить расширение файла через Finder на html.haml чтобы проверить это, он фактически изменил его на haml.html.haml или еще какая-нибудь чушь.

Мораль этой истории:Я запустил следующий скрипт, и теперь HAML работает с Rails 2.3.4.

path = '/path_to_rails_app/views/'
dir = Dir.new(path)
dir.each do |d|
  if File.directory?(path+d)
    Dir.new(path+d).each do |f|
      if (f =~ /.*\.haml\.html$/) != nil
        File.rename(path+d+'/'+f, path+d+'/'+f.gsub('haml.html', 'html.haml'))
      end
    end
  end
end

Другие советы

Попробуйте переименовать свой шаблон в

sections/_index.haml

или

sections/__index.haml
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top