Я новичок в rails и настраиваю проект ticketee, основанный на Rails в действии 3, я пытаюсь немного отклониться и настроить haml с помощью views / projects / show.html.haml
У меня настроен Gemfile и установлен haml, и я протестировал базовую страницу haml, и она работает.
Вот моя проблема, при переносе show.html.erb в haml я получаю ошибку, которую не могу устранить.
show.html.erb:
<h1><%= @project.name %></h1>
Отображается нормально, если я перехожу на http://localhost:3000/projects/1, отображается имя проекта с идентификатором 1.
show.html.haml:
<code>%h2= @project.name
После того, как я заменил show.html.erb на haml и перешел на указанный выше URL, я получил:
NoMethodError в проектах # show
Отображение /ticketee/app/views/projects/show.html.haml
где строка № 1 поднята:
неопределенный метод `name 'для nil: NilClass Извлеченный источник (вокруг строки
# 1):
1:% h2 = @ project.name Rails.root:
/ Ticketee
Приложение Trace | Framework Trace | Полная трассировка
приложение / просмотров / проекты / show.html.haml: 1: в
`_App_views_projects_show_html_haml ___ 2329513113615295829_70311891362660'
schema.rb определенно имеет поле имени:
ActiveRecord::Schema.define(:version => 20120212051007) do
create_table "projects", :force => true do |t|
t.string "name"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
end
И мой контроллер:
class ProjectsController < ApplicationController
def index
end
def new
@project = Project.new
end
def create
@project = Project.new(params[:project])
@project.save
#flash[:notice] = "Project has been created."
redirect_to @project, :notice => "Project has been created."
end
end
Полагаю, это просто недосмотр с моей стороны, так как это очень простое использование хамла.