Module: Cms::Behaviors::Attaching
- Defined in:
- lib/cms/behaviors/attaching.rb
Overview
Allows one or more files to be attached to content blocks.
class Book
acts_as_content_block
uses_paperclip
end
It would probably be nice to do something like:
class Book
acts_as_content_block :uses_paperclip => true
end
has_attached_asset and has_many_attached_assets are very similar. They both define a couple of methods in the content block:
class Book
uses_paperclip
has_attached_asset :cover
has_many_attached_assets :drafts
end
book = Book.new
book.cover = nil #is basically calling: book.assets.named(:cover).first
book.drafts = [] #is calling book.assets.named(:drafts)
Book#cover and Book#drafts both return Asset objects as opposed to what
happens with stand alone Paperclip:
class Book
has_attached_file :invoice #straight Paperclip
end
Book.new.invoice # returns an instance of Paperclip::Attachment
However, Asset instances respond to most of the same methods
Paperclip::Attachments do (at least the most usefull ones and the ones
that make sense for this implementation). Please see asset.rb for more on
this.
At the moment, calling has_attached_asset does not enforce that only
one asset is created, it only defines a method that returns the first one
ActiveRecord finds. It would be possible to do if that makes sense.
In terms of validations, I'm aiming to expose the same 3 class methods
Paperclip exposes, apart from those needed by BCMS itself (like enforcing
unique attachment paths) but this is not ready yet:
validates_asset_size
validates_asset_presence
validates_asset_content_type
Defined Under Namespace
Modules: ClassMethods, InstanceMethods, MacroMethods, Validations