Having a tough time creating a where clause and/or query for the
following situation for a table. Will appreciate some help:
Need to filter records for a specific client_id. No problem,
straightforward where condition
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.
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)