У меня возникают проблемы с передачей одной из моих спецификаций интеграции rspec / capybara с использованием самоцвета Fabricate.
Вот моя спецификация:
it "shows current node as top node on page" do
@node = Fabricate(:node)
visit node_path(@node)
page.should have_content(@node.title)
end
Мой Изготовитель:
Fabricator(:node) do
title { Faker::Lorem.words(3).join(" ") }
description {Faker::Lorem.paragraphs(3).join("\n") }
end
Действие шоу моего узла:
def show
@node = Node.find(params[:id])
end
Мой show.html.haml:
%h1= @node.title
Вывод моей спецификации:
1) Node shows current node as top node on page
Failure/Error: page.should have_content(@node.title)
expected #has_content?("nostrum qui sed") to return true, got false
И, наконец, я добавил в представление save_and_open_page, debug (params) и debug (@node), вот что получилось:
action: show
controller: nodes
id: "1"
--- !ruby/object:Node
attributes:
id: "1"
title:
description:
created_at: 2011-06-01 03:14:45.645663
updated_at: 2011-06-01 03:14:45.645663
attributes_cache: {}
changed_attributes: {}
destroyed: false
marked_for_destruction: false
new_record: false
previously_changed: {}
readonly: false
Кто-нибудь знает, почему заголовок и описание не сохраняются в БД?
Заранее спасибо!
----------------- обновление 6-1 ------------------------
Модель моего узла:
class Node < ActiveRecord::Base
attr_accessor :title, :description
validates :title, :presence => true
validates :description, :presence => true
end