53ea0f221e
There is a bug https://github.com/rails/arel/issues/531 in Rails 5.0 and 5.1 in Arel/ActiveRecord. This commit converts arel based queries to their raw counterparts to make the finder work in Rails 5.0. These changes should be reverted when on Rails 5.2 as since that version such queries work well again. See the bug link. |
||
---|---|---|
.. | ||
admin | ||
concerns | ||
access_requests_finder.rb | ||
autocomplete_users_finder.rb | ||
branches_finder.rb | ||
clusters_finder.rb | ||
contributed_projects_finder.rb | ||
environments_finder.rb | ||
events_finder.rb | ||
fork_projects_finder.rb | ||
group_descendants_finder.rb | ||
group_finder.rb | ||
group_members_finder.rb | ||
group_projects_finder.rb | ||
groups_finder.rb | ||
issuable_finder.rb | ||
issues_finder.rb | ||
joined_groups_finder.rb | ||
labels_finder.rb | ||
members_finder.rb | ||
merge_request_target_project_finder.rb | ||
merge_requests_finder.rb | ||
milestones_finder.rb | ||
move_to_project_finder.rb | ||
notes_finder.rb | ||
personal_access_tokens_finder.rb | ||
personal_projects_finder.rb | ||
pipeline_schedules_finder.rb | ||
pipelines_finder.rb | ||
projects_finder.rb | ||
README.md | ||
runner_jobs_finder.rb | ||
snippets_finder.rb | ||
tags_finder.rb | ||
todos_finder.rb | ||
union_finder.rb | ||
user_recent_events_finder.rb | ||
users_finder.rb |
Finders
This type of classes responsible for collection items based on different conditions. To prevent lookup methods in models like this:
class Project
def issues_for_user_filtered_by(user, filter)
# A lot of logic not related to project model itself
end
end
issues = project.issues_for_user_filtered_by(user, params)
Better use this:
issues = IssuesFinder.new(project, user, filter).execute
It will help keep models thiner.