First off, I have an interest in this sort of application myself.
Please contact me off-list if you would like additional help.
The proper way to do double entry rather depends on your workflow.
* Do you have the same person enter the data twice?
* Does the second entry happen at a different time, or do you want to
do it all in one form?
As a general rule, double entry makes for a bad user interface, but
there are times when it is necessary (password verifications show up a
In any event, one way to implement this would be through an 'edit' like
- record has been entered
- user invokes the 'verify' action on the record.
- 'verify' generates a blank form (much like a new item form) but
passes the id of the record in a hidden field
- on submission, load the original object in memory
- cycle through all the attributes of the record looking for
differences. Ignore at 'created_at' like attributes.
- If all the relevant columns pass, then update the 'verified_at' with
the timestamp of when it passed the test.
- If not, then assign the 'errors' for the record and re-render the
form with the discrepancies highlighted.