I have a video model using Paperclip to store the file. The model:
class Video < ActiveRecord::Base
belongs_to :category
before_save :permalink
validates_presence_of :title
validates_presence_of :category
validates_attachment_presence :filepath, :message => ‘- please,
select a file to updload’
validates_attachment_size :filepath, :less_than => 100.megabytes
validates_attachment_content_type :filepath, :content_type =>
[‘video/x-flv’],
:message => ‘- You can
upload only Flash movies’
has_attached_file :filepath,
:url => APP_CONFIG[‘url’]+"/videos/inline/:id",
:path => “:rails_root/
uploads/:attachment/:id/:style/:basename.:extension”
named_scope :videos_in_category,
lambda { |category_id|
{:conditions => [“category_id = ?”, category_id]}
}
private
def permalink
slug = Slug.new
self.url_slug = slug.url_friendly self.title
end
end
When I run this test:
test “should create video” do
assert_difference(‘Video.count’) do
video = videos :videos_002
video.filepath = File.new("#{RAILS_ROOT}/test/fixtures/
add_file.flv")
video.filepath_content_type = ‘video/x-flv’
category = categories(:intranet_administration)
post :create, :video => { :title => video.title,
:description => video.description,
:category_id => category.id,
:filepath => video.filepath,
:filepath_file_size =>
File.size("#{RAILS_ROOT}/test/fixtures/add_file.flv"),
:filepath_content_type => ‘video/x-
flv’,
:url_slug => video.url_slug}
end
assert_redirected_to video_path(assigns(:video))
end
I get this message:
“Video.count” didn’t change by 1.
<2> expected but was
<1>.
I tried to understand why it is not created but I do not get any
feedback. Do you have an idea how to solve this?
Thanks.