Controller Search Strategy

I'm trying to create a search action for one of my controllers that can take in different params. Something I can use like an api call:

../users/search?first_name=john&org_id=1

Any idea how I can start this? I'd like to have a clean "search" action but this is also copying the index action. I'm thinking that the action needs to serialize the params and apply them to a find but I'm not sure if this is the best way.

Thanks.

sshefer wrote:

I'm trying to create a search action for one of my controllers that can take in different params. Something I can use like an api call:

../users/search?first_name=john&org_id=1

Any idea how I can start this? I'd like to have a clean "search" action but this is also copying the index action. I'm thinking that the action needs to serialize the params and apply them to a find but I'm not sure if this is the best way.

Thanks.

Have you looked at searchlogic?

Sounds exactly what you are looking for.

Cheers Luke

Hey Luke,

Yeah - I’ve used search logic in the past. I’m trying to make search calls using ajax requests and as I understand it I can’t do that with search logic (I may be wrong).

Shai Shefer wrote:

Hey Luke,

Yeah - I've used search logic in the past. I'm trying to make search calls using ajax requests and as I understand it I can't do that with search logic (I may be wrong).

Take what I say with a grain of salt, as I haven't actually used Searchlogic... but as I understand it it basically just extends ActiveRecord to automagically add a bunch of convenience named scopes, and automatically uses those named scopes when you call search on the the model's class? It really doesn't mess with ActionController or ActionView at all besides adding a couple helper methods, so I can't see how it makes ajax anymore difficult. Have you actually tried using Searchlogic with ajax and encountered problems? If so, what were they?

Hi Paul,

I think you’re right - I took a second look at searchlogic (I haven’t used it for more than a year) and you can pass your search paramaters in the url pretty cleanly (search?search[order]=&search[created_by_id_equals]=30&search[hidden]=1). I thought there was some method that would take an encoded url and decode it into the search params but you can just use it directly. My mistake.

Searchlogic it is! (Thanks Luke)

Thanks,

Shai