Advanced search

I have a problem with the implementation of the search in the project

I have such models(bring a simplified version)

User
id
name

Friends
user_id
friend_id

Post
id
title
author_id
is_public

PostDeniedUser
post_id
user_id

some explanations:

User can create post. Post can be public or private. If post private
only
friends of author can see it post, but author can denied access to some
friends.

I need to implement search Post by title considering visibility for each
user.

some explanations:

User can search in all public posts, in private posts of his friends
which
are not denied in one query.

I think create some model SearchPost and like NewsFeed.
duplicate all the data on posts for each user, taking into account the
availability of, and then just make an inquiry with the search by title
by authorized
users

I think you can use rolify https://github.com/RolifyCommunity/rolify
as
you have dynamic permissions.

I can not understand how can I help?

I do not have different roles. All users have one role.

среда, 17 декабря 2014 г., 12:26:36 UTC+2 пользователь Vivek S.
написал:

" but author can denied access to some friends. " << this is why it has
dynamic roles on individual obejct

I can`t understand how it can help me?

I do not have different roles. All users have one role.

I think this almost my variant. Which is probably even more difficult.
Because the query will be contain more JOINS

I need create role reader and then associate each post with each
individual
user

What do you think about this?

среда, 17 декабря 2014 г., 15:36:31 UTC+2 пользователь Vivek S.
написал:

Dont worry about joins , you can use
GitHub - activerecord-hackery/squeel: Active Record, improved. Live again :) . I would probably do it
this way

Post name , content , :access_type => “Public/Private”

PostAccess ( another model ) - user_id , post_id , :type = “Allowed /
Denied”

Thanks. And how better to create access posts for users. After all, i
need
to create a relationship with each user. Delayed_job gem will be good?
17 Дек 2014 г. 17:08 пользователь “Vivek S.”
[email protected]
написал:

Depends on the type of application. If you think the posts should be
appear
on the feed immediately after creating then dont go with delayed_job

But if in application will be about1000 or 10000 or more user i need do
1000 or 10000 or more insert queries. To set access for one post( access
or
denied). Or i not right underatand you?
17 Дек 2014 г. 18:29 пользователь “Vivek S.”
[email protected]
написал:

:access_type => “Public/Private”
:type = “Allowed / Denied”
if Public then no need to create access.
if Private create access only those who you want to show / hide