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
-~----------~----~----~----~------~----~------~--~---

Reply via email to