Hi Eric, It's pretty hard to write something like this using active record, 'cos it's too easy to write complicated SQL code using it. How would you solve this issue? Would you write a query parser? A query optimizer? Build an indexing tool and also handle all the concurrency problems associated with such an effort?
You would end up writing a relational database, which doesn't seem to be a great idea. What you could do is write a simple persistence solution that "looks like" active record but using a simpler model (based on your ideas), removing all the SQL and things that resemble a relational database. You could take a look at ActiveResource and the way it behaves to get an idea about how you could build your API. On Tue, Oct 7, 2008 at 9:24 PM, Eric Schulte <[EMAIL PROTECTED]> wrote: > > Hi, > > I hoping to find/write an ActiveRecord backend which stores each record > as a file in a directory, rather than as a row in a table in a database. > I'm not concerned about scaling or concurrency issues. My questions > are... > > 1) Does such a backend exist? > 2) Is there some logical inconsistency between the behavior of > ActiveRecord and the limits of a filesystem? > 3) Where should implementation of such a backend begin? should I define > an AbstractAdapter? or should I scrap ActiveRecord all together, and > try to use another class as the base of my models? > > In terms of what this would look like, I'm thinking that each record > would have a string id, which would serve as the file name, either a > single text field aside from the ID and would be equal to the entire > file contents, or allow for multiple attributes, and save them into the > file in the form of a YAML hash. > > The use case which got me thinking of this was the desire to have an > rails application which users would often run locally on their own > machine, but with which they could share (active)records with other > users running other copies of the application on their machines. If the > records were saved as files, then > > 1) it would be easy for users to browse/inspect the records outside of > the application > 2) the sharing and merging of the records across instances could use > some existing distributed VC system like GIT > > the actual application could fairly easily wrap some simplifying UI > elements around something like git which could handle the pushing > pulling and merging of actual records between instances all the while > tracking who made what changes when. > > Please don't hesitate to tell me if you think there are reasons why this > wouldn't/shouldn't work. Thanks -- Eric > > > > -- Maurício Linhares http://alinhavado.wordpress.com/ (pt-br) | http://blog.codevader.com/ (en) João Pessoa, PB, +55 83 8867-7208 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" 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/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---

