shagymoe
2008-Nov-24 22:21 UTC
attachment_fu - uploading from different models in the same action
Hi, I''ve got a situation where I want to upload a zip file and an image from the same form. Each attachment is a different model. So, here''s what I''ve got. Models: class LogoImage < ActiveRecord::Base belongs_to :company has_attachment :max_size => 1.megabytes, :storage => :s3, :s3_config_path => (RAILS_ROOT + ''/config/ companies_s3.yml''), :content_type => :image, :thumbnails => { :large => ''96x96>'' , :medium => ''64x64>'' , :small => ''48x48>''}, :processor => :MiniMagick validates_as_attachment end class ZipFile < ActiveRecord::Base belongs_to :apps has_attachment :max_size => 1.megabytes, :storage => :s3, :s3_config_path => (RAILS_ROOT + ''/config/ apps_s3.yml''), :content_type => :image, :thumbnails => { :large => ''96x96>'' , :medium => ''64x64>'' , :small => ''48x48>''}, :processor => :MiniMagick validates_as_attachment end class App < ActiveRecord::Base has_one :zip_file belongs_to :companies end class Company < ActiveRecord::Base has_one :logo_image has_one :app end #### View ##### <%= error_messages_for :company %> <%= error_messages_for :app %> <%= error_messages_for :zip_file %> <%= error_messages_for :logo_image %> <% form_tag({:action => "new_app"}, { :multipart=>true }) do -%> <%= file_field_tag "zip_file" %> <%= file_field_tag "logo_image" %> <% end %> ### CONTROLLER #### def new_app @app = params[:id].nil? ? App.new : App.find(params[:id]) @company = Company.new(params[:company]) @zip_file = ZipFile.new(:uploaded_data => params[:zip_file]) @logo_image = LogoImage.new(:uploaded_data => params[:logo_image]) if request.post? @app.attributes = params[:app] @company.attributes = params[:company] App.transaction do @company.save! @logo_image.company_id = @company.id @logo_image.save! @app.company_id = @company.id @app.save! @zip_file.app_id = @app.id @zip_file.save! end end end ## config files ## apps_s3.yml development: bucket_name: apps_development access_key_id: id secret_access_key: key companies_3.yml development: bucket_name: companies_development access_key_id: id secret_access_key: key ################3 Of course, there is a lot more info in there, but I tried to condense it. The issue is that everything is getting saved, but the logo image is getting saved in the same bucket as the zip file. It seems that attachment_fu is just taking the bucket from the last attachment saved and putting them both there. Either this is a bug or I''m doing something wrong or it isn''t meant to do what I''m trying to do. Any ideas? Thanks. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---