forked from fixin.me/fixin.me
Simplify object and association checks
* check for <object> instead of <object>.nil? * check for <association>_id? instead of <association>.nil? (avoids record loading)
This commit is contained in:
@@ -7,8 +7,8 @@ class Quantity < ApplicationRecord
|
||||
dependent: :restrict_with_error
|
||||
|
||||
validate if: ->{ parent.present? } do
|
||||
errors.add(:parent, :user_mismatch) unless user == parent.user
|
||||
errors.add(:parent, :self_reference) if self == parent
|
||||
errors.add(:parent, :user_mismatch) unless user_id == parent.user_id
|
||||
errors.add(:parent, :self_reference) if id == parent_id
|
||||
end
|
||||
validate if: ->{ parent.present? }, on: :update do
|
||||
errors.add(:parent, :descendant_reference) if ancestor_of?(parent)
|
||||
@@ -68,7 +68,7 @@ class Quantity < ApplicationRecord
|
||||
numbered.project(
|
||||
numbered[Arel.star],
|
||||
numbered.cast(numbered[:child_number], 'BINARY').as('path'),
|
||||
).where(root.nil? ? numbered[:parent_id].eq(nil) : numbered[:id].eq(root.id)),
|
||||
).where(root ? numbered[:id].eq(root.id) : numbered[:parent_id].eq(nil)),
|
||||
numbered.project(
|
||||
numbered[Arel.star],
|
||||
arel_table[:path].concat(numbered[:child_number]),
|
||||
|
||||
@@ -6,9 +6,9 @@ class Unit < ApplicationRecord
|
||||
has_many :subunits, class_name: "Unit", inverse_of: :base, dependent: :restrict_with_error
|
||||
|
||||
validate if: ->{ base.present? } do
|
||||
errors.add(:base, :user_mismatch) unless user == base.user
|
||||
errors.add(:base, :self_reference) if self == base
|
||||
errors.add(:base, :multilevel_nesting) if base.base.present?
|
||||
errors.add(:base, :user_mismatch) unless user_id == base.user_id
|
||||
errors.add(:base, :self_reference) if id == base_id
|
||||
errors.add(:base, :multilevel_nesting) if base.base_id?
|
||||
end
|
||||
validates :symbol, presence: true, uniqueness: {scope: :user_id},
|
||||
length: {maximum: type_for_attribute(:symbol).limit}
|
||||
|
||||
Reference in New Issue
Block a user