Ransack is great for simple cases, however imho on more complex scenarios I'd rather write search from scratch, otherwise one ends up with those long names like name_matches_or_translation_name_matches that are somewhat unintuitive, and some even more complex scenarios cannot be expressed at all. So when search requirements bypass a certain threshold one should replace Ransack with a solution from scratch rather than fight it's API.
Ransack is great for simple cases, however imho on more complex scenarios I'd rather write search from scratch, otherwise one ends up with those long names like
name_matches_or_translation_name_matches
that are somewhat unintuitive, and some even more complex scenarios cannot be expressed at all. So when search requirements bypass a certain threshold one should replace Ransack with a solution from scratch rather than fight it's API.I have a gist integrating Squeel with CanCan ( https://gist.github.com/1523940 ) that lets one do outer joins and less common operations:
Hope Ryan will integrate it soon.