Improved find syntax in rails

Hey guys, I was told to move discussion to the mailing list so that is what I am doing. I recently started working with merb and datamapper and I am really fond of moving the super simple conditions syntax over to rails.

Here is the (closed) ticket:

http://rails.lighthouseapp.com/projects/8994/tickets/335-improve-conditions-hash-to-support-more-complex-queries

Here are some examples of the syntax in action:

Person.find(:all, :conditions => { :age.gt => 30, :name.like => "%name%" }) Person.all(:conditions => { :name => "Bob", :age.gt => 25 }) # returns all records that match 'all' conditions Person.all(:conditions => { :name.eql => "Bob", :age.gt => 25 }) Person.all(:conditions => { :name.like => "%ob%", :age.lte => 55 }) Person.all(:conditions => { :name.like => "%ob%", :age.in => [55, 56, 57] }) Person.all(:conditions => { :name.like => "%ob%", :age.not => [55, 56, 57] })

While, I have built a plugin that works with Rails 2.1 and below, this functionality is so simple and so elegant, I am interested in trying to get this into rails core.

Also, I find that this area is constantly changing which requires constant maintenance of the plugin. I believe this simple fix would be better suited to being in rails and it would benefit a lot of people when they first start building queries.

The plugin is here: http://github.com/xgamerx/conditions_fu/tree/master

If I was willing to create the patch and the associated tests, would this be able to be accepted into rails? Any thoughts or suggestions on the matter?

I forgot to mention that in the ticket, it is mentioned this may be redundant effort because of the plugin here: http://github.com/nkallen/arel/tree

Now I could be wrong but while this plugin seems useful as does this:

http://github.com/zdennis/ar-extensions/tree/master/ar-extensions

Both seem a bit too heavy handed to be part of the actual rails codebase. I am not convinced all that should be within the rails core. I am convinced that the simple ability to use conditions hashes while being given the added flexibility of greater-than, less-than, like, not, etc should be.

Pratik probably meant the rails-core list (which is explicitly about development of rails itself) as opposed to this general more usage oriented list. Not that there's anything wrong with posting here, but the readership will be different.

Fred

That's a fair point. Is it a problem if I double post this?

That's a fair point. Is it a problem if I double post this?

Other than 7 generations of bad luck I don't think anyone will mind :slight_smile:

Fred