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