Decouple to_params from AtomicInternalId concern
This commit is contained in:
parent
632b87a80e
commit
0af2ab18fa
|
@ -14,7 +14,7 @@ module Ci
|
|||
belongs_to :auto_canceled_by, class_name: 'Ci::Pipeline'
|
||||
belongs_to :pipeline_schedule, class_name: 'Ci::PipelineSchedule'
|
||||
|
||||
has_internal_id :iid, scope: :project, presence: false, to_param: false, init: -> do |s|
|
||||
has_internal_id :iid, scope: :project, presence: false, init: -> do |s|
|
||||
s&.project&.pipelines&.maximum(:iid) || s&.project&.pipelines.count
|
||||
end
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ module AtomicInternalId
|
|||
extend ActiveSupport::Concern
|
||||
|
||||
module ClassMethods
|
||||
def has_internal_id(column, scope:, init:, presence: true, to_param: true) # rubocop:disable Naming/PredicateName
|
||||
def has_internal_id(column, scope:, init:, presence: true) # rubocop:disable Naming/PredicateName
|
||||
before_validation :"ensure_#{column}!", on: :create
|
||||
validates column, presence: presence, numericality: true
|
||||
|
||||
|
@ -42,10 +42,6 @@ module AtomicInternalId
|
|||
|
||||
read_attribute(column)
|
||||
end
|
||||
|
||||
define_method("to_param") do
|
||||
read_attribute(column)
|
||||
end if to_param
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
module IIDRoutes
|
||||
##
|
||||
# This automagically enforces all related routes to use `iid` instead of `id`
|
||||
# If you want to use `iid` for some routes and `id` for other routes, this module should not to be included,
|
||||
# instead you should define `iid` or `id` explictly at each route generators. e.g. pipeline_path(project.id, pipeline.iid)
|
||||
def to_param
|
||||
iid.to_s
|
||||
end
|
||||
end
|
|
@ -1,5 +1,6 @@
|
|||
class Deployment < ActiveRecord::Base
|
||||
include AtomicInternalId
|
||||
include IIDRoutes
|
||||
|
||||
belongs_to :project, required: true
|
||||
belongs_to :environment, required: true
|
||||
|
|
|
@ -2,6 +2,7 @@ require 'carrierwave/orm/activerecord'
|
|||
|
||||
class Issue < ActiveRecord::Base
|
||||
include AtomicInternalId
|
||||
include IIDRoutes
|
||||
include Issuable
|
||||
include Noteable
|
||||
include Referable
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
class MergeRequest < ActiveRecord::Base
|
||||
include AtomicInternalId
|
||||
include IIDRoutes
|
||||
include Issuable
|
||||
include Noteable
|
||||
include Referable
|
||||
|
|
|
@ -9,6 +9,7 @@ class Milestone < ActiveRecord::Base
|
|||
|
||||
include CacheMarkdownField
|
||||
include AtomicInternalId
|
||||
include IIDRoutes
|
||||
include Sortable
|
||||
include Referable
|
||||
include StripAttribute
|
||||
|
|
Loading…
Reference in New Issue