Attachment_fu. . .HTML involved in immediately associating a

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

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(p)
}
end

hope that helps a little,
Bojan


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

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

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:

. . .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

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