Attachment_fu. . .HTML involved in immediately associating a


#1

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


#2

. . .anyone?


#3

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


#4

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:

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§
}
end

hope that helps a little,
Bojan


Bojan M.
-> Ruby on Rails and Web D. Blog : http://source.mihelac.org


#5

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://significantbits.wordpress.com/2007/04/06/using-attachment_fu-by-techno-weenie-to-add-image-attachment-support-to-your-rails-application/

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


#6

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


#7

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


#8

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:

. . .then I have the models associated through “has_many” and
form so field forattachment_fuupload looks something like these:

 }


Bojan M.
-> Ruby on Rails and Web D. Blog : http://source.mihelac.org


#9

yes, you can handle it in Product.

gberz3 wrote:

form handling.

 }


Bojan M.
-> Ruby on Rails and Web D. Blog :http://source.mihelac.org


Bojan M.
-> Ruby on Rails and Web D. Blog : http://source.mihelac.org