Can anyone point me to a howto that shows the absolute minimum needed
for file uploads to a database binary column using native RoR? I've
googled around, and all the results seem to be about plugins like
paperclip or attachment_fu, or complex examples that don't seem to
address a very basic need.
I currently have a schema with:
create_table "attachments", :force => true do |t|
t.integer "user_id"
t.integer "property_id"
t.binary "file"
t.datetime "created_at"
t.datetime "updated_at"
end
and a scaffolded controller with a view containing:
NoMethodError in AttachmentsController#create
private method `gsub' called for
#<File:/tmp/RackMultipart20091116-1557-wrrxpn-0>
but I can't find *any* useful documentation as to what needs to go into
the create action to pull it all together. I don't want to do anything
complicated; I just want to store the binary in the database for later
retrieval.
Can anyone point me to a howto that shows the absolute minimum needed
for file uploads to a database binary column using native RoR? I've
googled around, and all the results seem to be about plugins like
paperclip or attachment_fu, or complex examples that don't seem to
address a very basic need.
I currently have a schema with:
create_table "attachments", :force => true do |t|
t.integer "user_id"
t.integer "property_id"
t.binary "file"
t.datetime "created_at"
t.datetime "updated_at"
end
and a scaffolded controller with a view containing:
NoMethodError in AttachmentsController#create
private method `gsub' called for
#<File:/tmp/RackMultipart20091116-1557-wrrxpn-0>
You can't just assign a File object to a field in the database. You need to take care of reading the file into a string and putting that into the database.
That all said... seriously look at paperclip. It handles all of this for you. Not sure if it has a "db storage" option, but it wouldn't be hard to write one.
This code is provided as a public service and comes with NO WARRANTY
I just want this thread to go away and the answers you’re getting are paying attention to what you asked. Note that this code came from an old project that was Rails 1.1.6 (yeah, that old) and my “do something” was to hand off to a BackgrounDRb task to do the processing not really put the content into the database. YMMV