ho i seguenti modelli:stili condizionale che si applicano a graffetta allegati in Rails 3.1
Post.rb
class Post < ActiveRecord::Base
belongs_to :category
has_many :attachments, :dependent => :destroy
has_many :citations, :dependent => :destroy
validates :title, :category_id, :content, :presence =>true
acts_as_taggable_on :keywords
accepts_nested_attributes_for :attachments, :allow_destroy => true,
:reject_if => proc { |attributes| attributes['photo'].blank?}
accepts_nested_attributes_for :citations, :allow_destroy=>true
end
Attachment.rb
class Attachment < ActiveRecord::Base
belongs_to :post
has_attached_file :photo, :styles => { :medium => "637x471>",
:thumb => Proc.new { |instance| instance.resize },
:carousel => Proc.new { |instance| instance.decide_style }
},
:url => "/pictures/:style/:basename.:extension",
:path =>":rails_root/public/pictures/:style/:basename.:extension"
validates_attachment_content_type :photo, :content_type => ['image/png', 'image/jpg', 'image/jpeg']
validates_attachment_size :photo, :less_than => 2.megabytes
### End Paperclip ####
def decide_style
# catid = Post.find(param[:post_category_id])
# something here to get the selection from the form.
if(catid == 2)
# "400x800>" or custom style here
end
end
def resize
geo = Paperclip::Geometry.from_file(photo.to_file(:original))
ratio = geo.width/geo.height
min_width = 142
min_height = 119
if ratio > 1
# Horizontal Image
final_height = min_height
final_width = final_height * ratio
"#{final_width.round}x#{final_height.round}!"
else
# Vertical Image
final_width = min_width
final_height = final_width * ratio
"#{final_height.round}x#{final_width.round}!"
end
end
end
sto cercando di applicare uno stile condizionale , in base alla selezione effettuata da un menu a discesa nel modulo. Non sono sicuro di dove sia implementata la decisione su quale stile debba essere scelto.
Pensieri?
Rishi
Grazie Matt! Da allora ho risolto il problema, ma il tuo approccio è buono. – frishi