Nice trick Pat. I had no idea that ActiveRecord just takes the symbol
and converts it into a string when you specify a relationship, I thought
there was all kinds of kung-fu involved. That's awesome, I'll definitely
find a few places to put that technique to use.
On Feb 14, 2009, at 7:23 PM, Pat Allan wrote:
>
> But, if you want pagination to work straight out of the box, let's put
> named_scope aside for a moment...
>
> what you need is a custom attribute for your filter... (I'm guessing
> table and column names, and using mysql functions)
>
> has "IF(private = 1, '0', GROUP_CONCAT(friendships.friend_id SEPARATOR
> ','))", :as => :user_limit, :type => :multi
>
> And then:
>
> # This will match 0 for public users, and the user id for private
> users
> User.search "whatever", :with => {:user_limit => [0, user.id]}
>
> Give that a shot.
>
> Cheers
>
> --
> Pat
>
> On 15/02/2009, at 11:51 AM, Alex Caudill wrote:
>
>>
>> Hey Pascal,
>>
>> You could use a named_scope, e.g.,
>> User.publicly_visible.search(conditions), but then you'd have to
>> manually do pagination on the results, like
>> User.publicly_visible.search(conditions).paginate(:per_page =>
>> 10, :page => 1) - there may be performance problems with this, I
>> don't
>> know if
>> ActiveRecord lazily loads the rest of the User table columns or what,
>> but I'm using a similar approach with chained named scopes and it
>> seems to perform admirably so far.
>>
>> Hope this helps!
>>
>> On Feb 14, 2009, at 2:37 PM, pascal wrote:
>>
>>>
>>> Hi
>>>
>>>
>>> I want to convert a search system (just SQL queries) to sphinx/TS
>>> and
>>> have some troubles, and i hope someone can help me.
>>>
>>> The aim is to search users by first/lastname and a description text
>>> field. A user has many friends. Depending on the users privacy
>>> settings his visibility in the search by first/lastname is
>>> restricted
>>> to his friends or to everyone. Search by description is never
>>> restricted.
>>>
>>> Maybe an example can clear things up:
>>> User "Santa Claus" has "search privacy" turned on. If you are a
>>> friend
>>> you can still find him by the search "Santa". If you aren't a
>>> friend,
>>> then you can't find him with "Santa" but with "Christmas" because
>>> "Christmas" appears on a his description text.
>>>
>>> So it something like "find users where search terms matches AND
>>> (privacy off OR privacy on AND his ID is in in the list of my
>>> friends
>>> ids)".
>>>
>>> I got simple search up and running real quick but is Sphinx/TS the
>>> right tool for this? How would i go about this?
>>>
>>>
>>> Thanks for your help!
>>>
>>> Pascal
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>>
>>
>>
>>>
>
>
> >
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Thinking Sphinx" 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/thinking-sphinx?hl=en
-~----------~----~----~----~------~----~------~--~---