On Feb 8, 2010, at 11:34 PM, François Beausoleil wrote:
Hi!
I'm offering an import form for my users. The import model itself
isn't a real ActiveRecord model. How can I benefit from all of
DRYML's goodies, without using a hobo_model?
BTW: I've implemented something much like this, where admin-ish users
can upload a CSV file of user info and create a bunch of regular
users. No idea if that's exactly what you're going for here, but anyway.
The setup I ended up using in my app was a two-step process:
- upload the file.
- "process" the file. In my app, I was importing from variable-format
CSV (no consistency of column headings / order), and so this was
useful since I could analyze the actual file to find the real column
names. The "process" action looks up the column names from the
uploaded CSV and then lets the user indicate how they map to the
columns the system expects. The form looks a little like this:
first_name => (dropdown, showing actual headers and the first
corresponding bit of data)
... repeat for a bunch more fields ....
No idea if your system needs that much flexibility, but the "process"
action might also be a good place to tie in the "dryrun" stuff your
code hints at.
There's an optional third step, where any row that didn't pass
validation (or the remainder of the CSV, if it's malformed) is spit
back into a new file along with the validation errors. This has helped
my client figure out what's wrong with their data a number of times...
To wrap up, the upside to this method is that the upload/process stuff
is all pretty standard Rails; the file is a standard model
(attachment_fu, I think), etc.
It also avoids having to upload the file twice - it appears (at first
glance) like your method will need a user to upload the file once for
the "dry run" and then again for the real thing. Not a big deal for
small files, but a hassle nonetheless - especially since file upload
fields don't typically retain their values when you send a user back
to a form.
Hope this helps.
--Matt Jones
--
You received this message because you are subscribed to the Google Groups "Hobo
Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/hobousers?hl=en.