ActiveRecord Query

Having a tough time creating a where clause and/or query for the
following situation for a table. Will appreciate some help:

1. Need to filter records for a specific client_id. No problem,
straightforward where condition

2. For the specific client records found in step 1, need to further
filter records where the status is "published" for if the record was not
created by the current user, OR, regardless of the
"published/unpublished" status value if the record was created by the
current user. Note that the current user is identified by the
"current_user" method and there is a field in the table which is called
"created_by" that stores the id of the user who created this record.

What is the best way of representing such query?

Thanks.

Bharat

Having a tough time creating a where clause and/or query for the

following situation for a table. Will appreciate some help:

  1. Need to filter records for a specific client_id. No problem,

straightforward where condition

  1. For the specific client records found in step 1, need to further

filter records where the status is “published” for if the record was not

created by the current user, OR, regardless of the

“published/unpublished” status value if the record was created by the

current user. Note that the current user is identified by the

“current_user” method and there is a field in the table which is called

“created_by” that stores the id of the user who created this record.

Foo.where(:client_id => client_id).where(’(status = ? AND created_by != ?) OR (created_by = ?)’, ‘published’, current_user.id, current_user.id)