# Synchronizing a table to a spreadsheet

**URL:** <https://www.ruby-forum.com/t/synchronizing-a-table-to-a-spreadsheet/134420>\
**Category:** Rails\
**Created:** [April 10, 2008, 5:53pm UTC](https://www.ruby-forum.com/t/synchronizing-a-table-to-a-spreadsheet/134420 "2008-04-10T17:53:11Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![oldbug](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/o/c0e974/32.png) [@oldbug](https://www.ruby-forum.com/u/oldbug)\
**Post date:** [April 10, 2008, 5:53pm UTC](https://www.ruby-forum.com/t/synchronizing-a-table-to-a-spreadsheet/134420/1 "2008-04-10T17:53:11Z")

</div>

Hello all,  
As much as I hate saying this, I would like to maintain 2 copies of  
some data, one copy in the form of a table in a database, and one in  
the form of an Excel spreadsheet. Unfortunately, either or both  
copies may be modified, so I need some way to synchronize the two,  
much the same way as a contacts database might be synchronized between  
a PDA and a desktop application.

I am curious to learn from you… how would you do this?

I could put the “synchronize the data” logic in the ActiveRecord model  
and add some controller and view code that would enable me to upload  
the current spreadsheet, compute the differences between the two,  
display those differences along with some mechanism to accept or  
reject the changes, and download the new version of the modified  
spreadsheet.

Does that “synchronize the data” logic belong in the model? In the  
controller? In a helper module? I expect that it will be very  
specific to the model, and to the schema of that database.

Or I could create a rake task to do this

Or I could create a standalone ruby script to do this.

Or I could do something else which I haven’t even thought of yet.

I like the idea of presenting the differences via the GUI of a web  
browser (even though I am daunted by the amount of work that would  
entail for somebody with no web development experience).

Also, tangenting slightly, I am curious how this sort of “go off and  
do some work” type of behavior would map in the the RESTful way of  
doing things. I suppose that I could view the list of differences as  
a resource which can be indexed and edited, but I wonder if that is  
trying to fit a square peg in a round hole.

Finally, perhaps somebody has already done just this and would care to  
share his/her experience in how (s)he approached this problem.

I feel reasonably confident (some would say overconfident) in my  
ability to extract the data from the Excel workbook and compare it  
with the data in my database. I’m just not sure where would be a  
reasonable place to put that sort of logic.

–wpd
