mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
DEV: pluck_first
Doing .pluck(:column).first is a very common pattern in Discourse and in most cases, a limit cause isn't being added. Instead of adding a limit clause to all these callsites, this commit adds two new methods to ActiveRecord::Relation: pluck_first, equivalent to limit(1).pluck(*columns).first and pluck_first! which, like other finder methods, raises an exception when no record is found
This commit is contained in:
@@ -63,7 +63,7 @@ class ApplicationRequest < ActiveRecord::Base
|
||||
req_type_id = req_types[req_type]
|
||||
|
||||
# a poor man's upsert
|
||||
id = where(date: date, req_type: req_type_id).pluck(:id).first
|
||||
id = where(date: date, req_type: req_type_id).pluck_first(:id)
|
||||
id ||= create!(date: date, req_type: req_type_id, count: 0).id
|
||||
|
||||
rescue # primary key violation
|
||||
|
||||
Reference in New Issue
Block a user