Rails 2.3.2 пытается рендерить ERB вместо HAML - PullRequest
3 голосов
/ 19 июля 2009

Rails внезапно пытается отобразить ERB вместо Haml, и я не могу понять, почему. Я создал новые проекты rails, переустановил Haml и переустановил Rails.

Вот именно те шаги, которые я предпринимаю при создании приложения (Rails 2.3.2):

  rails> rails test
  rails> cd test
  rails\test> haml --rails .
  rails\test> ruby script\generate model user email:string password:string
  rails\test> ruby script\generate controller users index
  rails\test> rake db:migrate

Вот как выглядит UsersController:

class UsersController < ApplicationController
  def index
    @users = User.all
  end
end

Мои маршруты:

ActionController::Routing::Routes.draw do |map|
  map.resources :users
end

Теперь я создаю views \ users \ index.html.haml :

%table
  %th(style="text-align: left;")
    %h1 Users
  - for user in @users
    %tr
      %td= user.email
      %td= user.password

и запустить сервер ... Я перехожу на localhost: 3000 \ users и получаю это сообщение об ошибке:

Template is missing

Missing template users/index.erb in view path app/views

По какой-то причине Rails пытается найти и отобразить файлы .erb вместо файлов .haml. vendor \ plugins \ haml \ init.rb существует без изменений.

Я переустанавливал Haml (Pretty Penny) несколько раз и все еще получаю те же результаты. Я также попытался добавить config.gem 'haml' в мой environment.rb, но это также не работает.

Я не могу понять, почему рельсы вдруг не окажут мне хмеля.

Ответы [ 11 ]

0 голосов
/ 02 августа 2009

Хм, странно, это может быть связано.

Согласно: http://www.ruby -forum.com / topic / 101346 вы должны использовать resource_url помощников в контроллерах и resource_path помощников в представлениях. Правильно?

НО, если я использую помощник resource_url в вызове redirect_to внутри моего контроллера , тогда я получу:

Отсутствует шаблон htp: // localhost: 4000 / Categories / new.erb в пути просмотра приложения / views

Если я вместо этого использую помощник resource_path , проблем не возникнет вообще. Кто-нибудь знает, что может быть не так?

Почему помощник resource_url пытается перенаправить в файл .erb?

Это ошибка из журнала сервера:

ActionView::MissingTemplate (Missing template http://localhost:4000/categories/new.erb in view path app/views):
haml (2.2.2) lib/haml/helpers/action_view_mods.rb:13:in `render'
app/controllers/categories_controller.rb:15:in `create'
haml (2.2.2) rails/./lib/sass/plugin/rails.rb:19:in `process'

P.S. Это в Rails 2.3.3

...