I've heard that claim before and it typically means your specs do a large amount of AR object creation on the fly via factories. For some use cases, MetaWhere used to actually increase benchmarked performance.
As for Squeel, I haven't done any such benchmarking, but I'd be interested to see the results.
I'd second this. I wouldn't have written Ransack if there weren't use cases for it, but I do feel some guilt, sometimes, over making it easy for people to do the wrong thing. I'd also note that it's important, for public-facing and high-traffic search forms, to consider an inverted index search of some kind.
Thanks, Ryan! One of my favorite features of MetaWhere is intelligent hash condition mapping. This means that you can do really complex join operations and still write your wheres just by using the association names. MetaWhere will find the right table name automatically.
See http://metautonomo.us/projects/metawhere/#associations for more.
They're different creatures. Squeel is a DSL that works with ActiveRecord -- Sequel is an entirely different ORM.
I've heard that claim before and it typically means your specs do a large amount of AR object creation on the fly via factories. For some use cases, MetaWhere used to actually increase benchmarked performance.
As for Squeel, I haven't done any such benchmarking, but I'd be interested to see the results.
I'd second this. I wouldn't have written Ransack if there weren't use cases for it, but I do feel some guilt, sometimes, over making it easy for people to do the wrong thing. I'd also note that it's important, for public-facing and high-traffic search forms, to consider an inverted index search of some kind.
Since Squeel converts down to ARel, which underpins pretty much all of ActiveRecord, you shouldn't have any problems related to DB drivers.
@Junhyun: MetaSearch adjusts the form method automatically in cases where the object supplied is a MetaSearch::Builder (as @search is)
Nicolas: MetaSearch has that. See http://bit.ly/fKXH9Q for the docs.
Thanks, Ryan! One of my favorite features of MetaWhere is intelligent hash condition mapping. This means that you can do really complex join operations and still write your wheres just by using the association names. MetaWhere will find the right table name automatically.
See http://metautonomo.us/projects/metawhere/#associations for more.