Attachment_fu. . .HTML involved in immediately associating an upload with a model?

All,

I'm having trouble wrapping my head around how to associate my IMAGE model with my PRODUCT model. Basically I have the obligatory fields for the attachment_fu association:

class CreateImages < ActiveRecord::Migration

  def self.up     create_table :images do |t|       t.column :parent_id, :integer       t.column :content_type, :string       t.column :filename, :string       t.column :thumbnail, :string       t.column :size, :integer       t.column :width, :integer       t.column :height, :integer     end   end

  def self.down     drop_table :images   end end

. . .then I have the models associated through "has_many" and "belongs_to". What I can't quite figure out is how to immediately associate an uploaded image with a product on the same "new" page. Would I set the "form_for" a PRODUCT and IMAGE independently, or would I have one nested inside the other? I'm sorry, I've been coding for several hours on end now, and I'm admittedly a bit rusty on my HTML form handling.

Thanks, Michael

. . .anyone?

Basically I need to include two models in a single form. I guess what I'm looking for is very similar to this thread:

http://www.railsforum.com/viewtopic.php?id=717

. . .but I'm not sure how to include the specific information for the attachment_fu based IMAGE model (e.g. url, html {multipart. . . . .})

Thanks, Michael

Interesting I am working with this same problem all day today...

These posts were most helpful to me, though w/ my barely functioning app I still have lots of questions myself!

http://railsgrunt.com/2007/3/14/ruby-rails-upload-multiple-files-using-acts-as-attachment

My end goal is to hopefully get to having an object with multiple images attachable and editable through a single, dynamic form. If you find any more articles or code examples on how to do this, please post!

Hope these help. Good luck!

Hal

. . .then I have the models associated through "has_many" and "belongs_to". What I can't quite figure out is how to immediately associate an uploaded image with a product on the same "new" page. Would I set the "form_for" a PRODUCT and IMAGE independently, or would I have one nested inside the other? I'm sorry, I've been coding for several hours on end now, and I'm admittedly a bit rusty on my HTML form handling.

Thanks, Michael

Michael, approach that I am using is to nest 'documents' (or images) in product form so field for attachment_fu upload looks something like these:

<input id="product[edit_documents]_1136_uploaded_data" type="file" size="30" name="product[edit_documents][1136][uploaded_data]"/>

then, in model specify attributes which are set from controller

   attr_writer :edit_documents, :new_documents    after_save :update_documents

and code for handling actual uploads looks like:

   def update_documents      opts = @edit_documents || {}      documents.each { |opt| opt.destroy if !opts.has_key?(opt.id.to_s) }      opts.each {|key, params|        Document.find(key).update_attributes(params)      }      (@new_documents || ).each { |p|        next if (p[:uploaded_data].size == 0 && p[:position].empty? && p[:name].empty?)        self.documents.create(p)      }    end

hope that helps a little, Bojan

Bojan,

Thanks for the post. I'm still slightly confused. The code you posted for the form looks like straight HTML not RHTML. Could you clarify a bit as to what is goin on there and perhaps 'rubify' it?

Thanks, Michael

Perhaps I should handle it in the save of the Product? If the :uploaded_data var is not nil, then use it. Any thoughts?

Michael, I take the code from HTML page as it is created with ROAR and it would be too much to post all the code here. I recommend you to download Roar and see how it is done there / it has many examples and maybe u'd like interface too.

best, Bojan

gberz3 wrote:

yes, you can handle it in Product.

gberz3 wrote: