Skip to content

Instantly share code, notes, and snippets.

@vast
Forked from ildarsafin/scopes_in_tasks_model.rb
Last active August 29, 2015 14:02
Show Gist options
  • Save vast/6b02ab1a8f52010570b0 to your computer and use it in GitHub Desktop.
Save vast/6b02ab1a8f52010570b0 to your computer and use it in GitHub Desktop.
scope :complete, ->(value) { where(summary_status: 'complete', state: 'active').limit(value) }
scope :accessible_by_user, ->(user) do
includes(:assignee_tasks)
.where('tasks.user_id = :user_id OR assignee_tasks.user_id = :user_id', user_id: user.id)
end
scope :accessible_by_user_with_state, ->(user, state) do
accessible_by_user(user).where('tasks.state = :state OR assignee_tasks.state = :state', :state)
end
scope :accessible_to_update, ->(user) do
includes(:assignee_tasks)
.where('tasks.user_id = :user_id OR (assignee_tasks.user_id = :user_id AND assignee_tasks.status = :status)',
user_id: user.id, status: 'visible')
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment