Hi everyone
I am using attachment fu for image uploading. I try to customize the
path for pictures be saved.
If I call session[:kwikerhash] in the image.rb where there method for
path definition is I get an undefined method or variable error. If I
fill a global variable @kwikerhash in the controller with the session
value and try to use it in the image.rb it says that @kwikerhash is nil.
Is there a possibility to get access to session values in model files?
Thanks in advance.
Regards
Adam
Hi Adam M.
Is there a possibility to get access to session values in model files?
You can’t do that and if any means doing that means violating MVC .
What you can do is to pass the session variable from controller to model
For example in the image.rb you have a
def do_this(session_id)
end
So from controller you can pass it like
@image_model_obj.do_this(session[:kwikerhash])
Sijo
Sijo Kg wrote:
Hi Adam M.
Is there a possibility to get access to session values in model files?
You can’t do that and if any means doing that means violating MVC .
What you can do is to pass the session variable from controller to model
For example in the image.rb you have a
def do_this(session_id)
end
So from controller you can pass it like
@image_model_obj.do_this(session[:kwikerhash])
Sijo
Hi Sijo
you’re right. But if I set a value to @kwikerhash in the controller I
have also access to it in the view.
This is fucked. Because its a method which I override from the
attachment_fu plugin.
So I need to create the same method with parameters.
Thanks
On your image model, you could add, for example:
class Image < ActiveRecord::Base
attr_writer :session_date
…
and, on you controller, right after you create a new image:
@image = Image.new <whatever_parameters>
@image.session_date = session[:kwikerhash][<whatever_param>]
Hope this helps!
On Sep 30, 6:54 pm, Adam M. [email protected]
Hello again,
sorry but I have no Idea how to solve it. I try to explain the problem.
I am using attachment_fu for picture upload and output. I wanna change
the attachment-fu to save the pics in a specific folder. Therefor my
image.rb looks
class Image < ActiveRecord::Base
has_many :categories
belongs_to :category
belongs_to :products
belongs_to :kwikers
has_attachment :content_type => :image,
:storage => :file_system, :path_prefix => ‘public/assets/uploads’,
:max_size => 10.megabytes,
:resize_to => ‘1024x1024>’,
:thumbnails => { :thumb => ‘150x150>’},
:processor => :MiniMagick # attachment_fu looks in this order:
ImageScience, Rmagick, MiniMagick
validates_as_attachment
def uploaded_data=(file_data)
return nil if file_data.nil? || file_data.size == 0
self.content_type = file_data.content_type
extension = file_data.original_filename.slice(/.\w+$/)
self.filename = Digest::SHA1.hexdigest(Time.now.to_s) + extension
File.extname(file_data.original_filename) if respond_to?(:filename)
if file_data.is_a?(StringIO)
file_data.rewind
self.temp_data = file_data.read
else
self.temp_path = file_data.path
end
end
START: FOLDER STRUCTURE MODIFYING CODE
Changes the folder structure
def full_filename(thumbnail = nil)
file_system_path = (thumbnail ? thumbnail_class :
self).attachment_options[:path_prefix]
File.join(RAILS_ROOT, file_system_path,
created_at.strftime("%Y/%m/%d"), thumbnail_name_for(thumbnail))
end
end
I want to replace the created_at.strftime("%Y/%m/%d") in the
full_filename method with the value which is set in
session[:kwikerhash]. But I don’t know how. The view file calls a method
image.public_filename(:thumb) for example.
What can I do to let the full_filename method take the value from the
session?
Please help.
Adam