我正在使用带有ruby 1.9.2的rails 3.0.9。我正在做一个允许用户将物品放入不同壁橱的系统。用户的一种可能性是将其他用户的项目复制到他自己的衣柜中(如果你不理解,请告诉我,我不善于解释事情......)。
要处理图像,我正在使用paperclip 2.3.16。我正在用Rspec-rails 2.6.1,Cucumber-rails 1.0.2测试我的应用程序。当我用guard& amp; spork在资产的副本部分,我有一个“TypeError:不能复制NilClass”。我在网上搜索答案,但没有找到任何具体和有效的工作:(。
您对这个问题有所了解吗?
我的closet_spec.rb代码(如果你需要别的东西,请告诉我):
describe '#tidy_up' do
let!(:other_user) { Factory.create(:confirmed_user, :user_name => 'Plop', :email => 'coin@plop.fr') }
let!(:closet) { other_user.closets.first }
let!(:item) { Item.create! :type_id => 42, :closet_id => dream_dressing.id }
let!(:dressing_item) { Item.create! :type_id => 42, :closet_id => dressing.id }
before do
path = File.join(Rails.root, "spec", "support", 'image.jpg')
f = File.open(path)
2.times.map do |n|
i = Item.new :type_id => 2#, :asset => Asset.new(picture)
i.save!
puts ">>>>>>>>>>>>>>>>>>>>> #{i.id}"
i.build_asset(:picture => f)
closet.items << i
end
@count = 0
end
it 'copies given items and assets to closet' do
expect { dream_dressing.tidy_up closet.items }.to change { dream_dressing.items.count }.by 2
expect { dream_dressing.tidy_up closet.items }.to change { dream_dressing.items.map{|i| i.asset; puts ">>>>>>>>>>>>>>>>> asset : #{i.asset} " }.length }.by 2
end