Add column FederalSubject#centre
This commit is contained in:
parent
9a6904829f
commit
b6f6899ecc
11 changed files with 141 additions and 87 deletions
|
@ -35,6 +35,10 @@ class FederalSubject < ApplicationRecord
|
|||
uniqueness: true,
|
||||
length: { in: 1..255 }
|
||||
|
||||
validates :centre,
|
||||
presence: true,
|
||||
length: { in: 1..255 }
|
||||
|
||||
validates :number,
|
||||
presence: true,
|
||||
uniqueness: true,
|
||||
|
@ -44,6 +48,7 @@ class FederalSubject < ApplicationRecord
|
|||
|
||||
validate :english_name_looks_realistic
|
||||
validate :native_name_looks_realistic
|
||||
validate :centre_looks_realistic
|
||||
|
||||
###########
|
||||
# Methods #
|
||||
|
@ -72,4 +77,11 @@ private
|
|||
errors.add :native_name, :leading_spaces if native_name.start_with? ' '
|
||||
errors.add :native_name, :trailing_spaces if native_name.end_with? ' '
|
||||
end
|
||||
|
||||
def centre_looks_realistic
|
||||
return if centre.blank?
|
||||
|
||||
errors.add :centre, :leading_spaces if centre.start_with? ' '
|
||||
errors.add :centre, :trailing_spaces if centre.end_with? ' '
|
||||
end
|
||||
end
|
||||
|
|
|
@ -8,6 +8,9 @@
|
|||
<th scope="col">
|
||||
<%= FederalSubject.human_attribute_name :display_name %>
|
||||
</th>
|
||||
<th scope="col">
|
||||
<%= FederalSubject.human_attribute_name :centre %>
|
||||
</th>
|
||||
<th scope="col">
|
||||
<%= FederalSubject.human_attribute_name :timezone %>
|
||||
</th>
|
||||
|
@ -20,6 +23,7 @@
|
|||
<tr>
|
||||
<td><%= federal_subject.number %></td>
|
||||
<td><%= federal_subject.display_name %></td>
|
||||
<td><%= federal_subject.centre %></td>
|
||||
<td><%= federal_subject.timezone %></td>
|
||||
<td>
|
||||
<% if policy(federal_subject).show? %>
|
||||
|
|
|
@ -8,6 +8,9 @@
|
|||
</p>
|
||||
|
||||
<dl class="mt-3">
|
||||
<dt><%= FederalSubject.human_attribute_name :centre %></dt>
|
||||
<dd><%= @federal_subject.centre %></dd>
|
||||
|
||||
<dt><%= FederalSubject.human_attribute_name :number %></dt>
|
||||
<dd><%= @federal_subject.number %></dd>
|
||||
|
||||
|
|
|
@ -1,85 +1,85 @@
|
|||
22 | Altai Krai | Алтайский край | 22 | 06:00:00
|
||||
31 | Amur Oblast | Амурская область | 28 | 08:00:00
|
||||
32 | Arkhangelsk Oblast | Архангельская область | 29 | 02:00:00
|
||||
33 | Astrakhan Oblast | Астраханская область | 30 | 03:00:00
|
||||
34 | Belgorod Oblast | Белгородская область | 31 | 02:00:00
|
||||
35 | Bryansk Oblast | Брянская область | 32 | 02:00:00
|
||||
36 | Vladimir Oblast | Владимирская область | 33 | 02:00:00
|
||||
37 | Volgograd Oblast | Волгоградская область | 34 | 02:00:00
|
||||
38 | Vologda Oblast | Вологодская область | 35 | 02:00:00
|
||||
39 | Voronezh Oblast | Воронежская область | 36 | 02:00:00
|
||||
80 | Jewish Autonomous Oblast | Еврейская автономная область | 79 | 09:00:00
|
||||
23 | Zabaykalsky Krai | Забайкальский край | 75 | 08:00:00
|
||||
40 | Ivanovo Oblast | Ивановская область | 37 | 02:00:00
|
||||
41 | Irkutsk Oblast | Иркутская область | 38 | 07:00:00
|
||||
6 | Kabardino-Balkar Republic | Кабардино-Балкарская Республика | 07 | 02:00:00
|
||||
42 | Kaliningrad Oblast | Калининградская область | 39 | 01:00:00
|
||||
43 | Kaluga Oblast | Калужская область | 40 | 02:00:00
|
||||
24 | Kamchatka Krai | Камчатский край | 41 | 11:00:00
|
||||
8 | Karachay-Cherkess Republic | Карачаево-Черкесская Республика | 09 | 02:00:00
|
||||
44 | Kemerovo Oblast | Кемеровская область | 42 | 06:00:00
|
||||
45 | Kirov Oblast | Кировская область | 43 | 02:00:00
|
||||
46 | Kostroma Oblast | Костромская область | 44 | 02:00:00
|
||||
25 | Krasnodar Krai | Краснодарский край | 23 | 02:00:00
|
||||
26 | Krasnoyarsk Krai | Красноярский край | 24 | 06:00:00
|
||||
47 | Kurgan Oblast | Курганская область | 45 | 04:00:00
|
||||
48 | Kursk Oblast | Курская область | 46 | 02:00:00
|
||||
49 | Leningrad Oblast | Ленинградская область | 47 | 02:00:00
|
||||
50 | Lipetsk Oblast | Липецкая область | 48 | 02:00:00
|
||||
51 | Magadan Oblast | Магаданская область | 49 | 10:00:00
|
||||
77 | Moscow | Москва | 77 | 02:00:00
|
||||
52 | Moscow Oblast | Московская область | 50 | 02:00:00
|
||||
53 | Murmansk Oblast | Мурманская область | 51 | 02:00:00
|
||||
81 | Nenets Autonomous Okrug | Ненецкий автономный округ | 83 | 02:00:00
|
||||
54 | Nizhny Novgorod Oblast | Нижегородская область | 52 | 02:00:00
|
||||
55 | Novgorod Oblast | Новгородская область | 53 | 02:00:00
|
||||
56 | Novosibirsk Oblast | Новосибирская область | 54 | 06:00:00
|
||||
57 | Omsk Oblast | Омская область | 55 | 05:00:00
|
||||
58 | Orenburg Oblast | Оренбургская область | 56 | 04:00:00
|
||||
59 | Oryol Oblast | Орловская область | 57 | 02:00:00
|
||||
60 | Penza Oblast | Пензенская область | 58 | 02:00:00
|
||||
27 | Perm Krai | Пермский край | 59 | 04:00:00
|
||||
28 | Primorsky Krai | Приморский край | 25 | 09:00:00
|
||||
61 | Pskov Oblast | Псковская область | 60 | 02:00:00
|
||||
87 | Republic of Adygea | Республика Адыгея | 01 | 02:00:00
|
||||
1 | Altai Republic | Республика Алтай | 04 | 06:00:00
|
||||
2 | Republic of Bashkortostan | Республика Башкортостан | 02 | 04:00:00
|
||||
3 | Republic of Buryatia | Республика Бурятия | 03 | 07:00:00
|
||||
4 | Republic of Dagestan | Республика Дагестан | 05 | 02:00:00
|
||||
5 | Republic of Ingushetia | Республика Ингушетия | 06 | 02:00:00
|
||||
7 | Republic of Kalmykia | Республика Калмыкия | 08 | 02:00:00
|
||||
9 | Republic of Karelia | Республика Карелия | 10 | 02:00:00
|
||||
10 | Komi Republic | Республика Коми | 11 | 02:00:00
|
||||
11 | Republic of Crimea | Республика Крым | 91 | 02:00:00
|
||||
12 | Mari El Republic | Республика Марий Эл | 12 | 02:00:00
|
||||
13 | Republic of Mordovia | Республика Мордовия | 13 | 02:00:00
|
||||
14 | Republic of Sakha (Yakutia) | Республика Саха (Якутия) | 14 | 08:00:00
|
||||
15 | Republic of North Ossetia – Alania | Республика Северная Осетия — Алания | 15 | 02:00:00
|
||||
16 | Republic of Tatarstan | Республика Татарстан | 16 | 02:00:00
|
||||
17 | Tyva Republic | Республика Тыва | 17 | 06:00:00
|
||||
19 | Republic of Khakassia | Республика Хакасия | 19 | 06:00:00
|
||||
62 | Rostov Oblast | Ростовская область | 61 | 02:00:00
|
||||
63 | Ryazan Oblast | Рязанская область | 62 | 02:00:00
|
||||
64 | Samara Oblast | Самарская область | 63 | 03:00:00
|
||||
78 | Saint Petersburg | Санкт-Петербург | 78 | 02:00:00
|
||||
65 | Saratov Oblast | Саратовская область | 64 | 03:00:00
|
||||
66 | Sakhalin Oblast | Сахалинская область | 65 | 10:00:00
|
||||
67 | Sverdlovsk Oblast | Свердловская область | 66 | 04:00:00
|
||||
79 | Sevastopol | Севастополь | 92 | 02:00:00
|
||||
68 | Smolensk Oblast | Смоленская область | 67 | 02:00:00
|
||||
29 | Stavropol Krai | Ставропольский край | 26 | 02:00:00
|
||||
69 | Tambov Oblast | Тамбовская область | 68 | 02:00:00
|
||||
70 | Tver Oblast | Тверская область | 69 | 02:00:00
|
||||
71 | Tomsk Oblast | Томская область | 70 | 06:00:00
|
||||
72 | Tula Oblast | Тульская область | 71 | 02:00:00
|
||||
73 | Tyumen Oblast | Тюменская область | 72 | 04:00:00
|
||||
18 | Udmurt Republic | Удмуртская Республика | 18 | 03:00:00
|
||||
74 | Ulyanovsk Oblast | Ульяновская область | 73 | 03:00:00
|
||||
30 | Khabarovsk Krai | Хабаровский край | 27 | 09:00:00
|
||||
82 | Khanty-Mansi Autonomous Okrug – Yugra | Ханты-Мансийский автономный округ — Югра | 86 | 04:00:00
|
||||
75 | Chelyabinsk Oblast | Челябинская область | 74 | 04:00:00
|
||||
20 | Chechen Republic | Чеченская Республика | 20 | 02:00:00
|
||||
21 | Chuvash Republic | Чувашская Республика | 21 | 02:00:00
|
||||
83 | Chukotka Autonomous Okrug | Чукотский автономный округ | 87 | 11:00:00
|
||||
84 | Yamalo-Nenets Autonomous Okrug | Ямало-Ненецкий автономный округ | 89 | 04:00:00
|
||||
76 | Yaroslavl Oblast | Ярославская область | 76 | 02:00:00
|
||||
22 | Altai Krai | Алтайский край | 22 | 06:00:00 | Барнаул
|
||||
31 | Amur Oblast | Амурская область | 28 | 08:00:00 | Благовещенск
|
||||
32 | Arkhangelsk Oblast | Архангельская область | 29 | 02:00:00 | Архангельск
|
||||
33 | Astrakhan Oblast | Астраханская область | 30 | 03:00:00 | Астрахань
|
||||
34 | Belgorod Oblast | Белгородская область | 31 | 02:00:00 | Белгород
|
||||
35 | Bryansk Oblast | Брянская область | 32 | 02:00:00 | Брянск
|
||||
36 | Vladimir Oblast | Владимирская область | 33 | 02:00:00 | Владимир
|
||||
37 | Volgograd Oblast | Волгоградская область | 34 | 02:00:00 | Волгоград
|
||||
38 | Vologda Oblast | Вологодская область | 35 | 02:00:00 | Вологда
|
||||
39 | Voronezh Oblast | Воронежская область | 36 | 02:00:00 | Воронеж
|
||||
80 | Jewish Autonomous Oblast | Еврейская автономная область | 79 | 09:00:00 | Биробиджан
|
||||
23 | Zabaykalsky Krai | Забайкальский край | 75 | 08:00:00 | Чита
|
||||
40 | Ivanovo Oblast | Ивановская область | 37 | 02:00:00 | Иваново
|
||||
41 | Irkutsk Oblast | Иркутская область | 38 | 07:00:00 | Иркутск
|
||||
6 | Kabardino-Balkar Republic | Кабардино-Балкарская Республика | 07 | 02:00:00 | Нальчик
|
||||
42 | Kaliningrad Oblast | Калининградская область | 39 | 01:00:00 | Калининград
|
||||
43 | Kaluga Oblast | Калужская область | 40 | 02:00:00 | Калуга
|
||||
24 | Kamchatka Krai | Камчатский край | 41 | 11:00:00 | Петропавловск-Камчатский
|
||||
8 | Karachay-Cherkess Republic | Карачаево-Черкесская Республика | 09 | 02:00:00 | Черкесск
|
||||
44 | Kemerovo Oblast | Кемеровская область | 42 | 06:00:00 | Кемерово
|
||||
45 | Kirov Oblast | Кировская область | 43 | 02:00:00 | Киров
|
||||
46 | Kostroma Oblast | Костромская область | 44 | 02:00:00 | Кострома
|
||||
25 | Krasnodar Krai | Краснодарский край | 23 | 02:00:00 | Красноярск
|
||||
26 | Krasnoyarsk Krai | Красноярский край | 24 | 06:00:00 | Краснодар
|
||||
47 | Kurgan Oblast | Курганская область | 45 | 04:00:00 | Курган
|
||||
48 | Kursk Oblast | Курская область | 46 | 02:00:00 | Курск
|
||||
49 | Leningrad Oblast | Ленинградская область | 47 | 02:00:00 | Санкт-Петербург
|
||||
50 | Lipetsk Oblast | Липецкая область | 48 | 02:00:00 | Липецк
|
||||
51 | Magadan Oblast | Магаданская область | 49 | 10:00:00 | Магадан
|
||||
77 | Moscow | Москва | 77 | 02:00:00 | Москва
|
||||
52 | Moscow Oblast | Московская область | 50 | 02:00:00 | Москва
|
||||
53 | Murmansk Oblast | Мурманская область | 51 | 02:00:00 | Мурманск
|
||||
81 | Nenets Autonomous Okrug | Ненецкий автономный округ | 83 | 02:00:00 | Нарьян-Мар
|
||||
54 | Nizhny Novgorod Oblast | Нижегородская область | 52 | 02:00:00 | Нижний Новгород
|
||||
55 | Novgorod Oblast | Новгородская область | 53 | 02:00:00 | Великий Новгород
|
||||
56 | Novosibirsk Oblast | Новосибирская область | 54 | 06:00:00 | Новосибирск
|
||||
57 | Omsk Oblast | Омская область | 55 | 05:00:00 | Омск
|
||||
58 | Orenburg Oblast | Оренбургская область | 56 | 04:00:00 | Оренбург
|
||||
59 | Oryol Oblast | Орловская область | 57 | 02:00:00 | Орёл
|
||||
60 | Penza Oblast | Пензенская область | 58 | 02:00:00 | Пенза
|
||||
27 | Perm Krai | Пермский край | 59 | 04:00:00 | Пермь
|
||||
28 | Primorsky Krai | Приморский край | 25 | 09:00:00 | Владивосток
|
||||
61 | Pskov Oblast | Псковская область | 60 | 02:00:00 | Псков
|
||||
87 | Republic of Adygea | Республика Адыгея | 01 | 02:00:00 | Майкоп
|
||||
1 | Altai Republic | Республика Алтай | 04 | 06:00:00 | Горно-Алтайск
|
||||
2 | Republic of Bashkortostan | Республика Башкортостан | 02 | 04:00:00 | Уфа
|
||||
3 | Republic of Buryatia | Республика Бурятия | 03 | 07:00:00 | Улан-Удэ
|
||||
4 | Republic of Dagestan | Республика Дагестан | 05 | 02:00:00 | Махачкала
|
||||
5 | Republic of Ingushetia | Республика Ингушетия | 06 | 02:00:00 | Магас
|
||||
7 | Republic of Kalmykia | Республика Калмыкия | 08 | 02:00:00 | Элиста
|
||||
9 | Republic of Karelia | Республика Карелия | 10 | 02:00:00 | Петрозаводск
|
||||
10 | Komi Republic | Республика Коми | 11 | 02:00:00 | Сыктывкар
|
||||
11 | Republic of Crimea | Республика Крым | 91 | 02:00:00 | Симферополь
|
||||
12 | Mari El Republic | Республика Марий Эл | 12 | 02:00:00 | Йошкар-Ола
|
||||
13 | Republic of Mordovia | Республика Мордовия | 13 | 02:00:00 | Саранск
|
||||
14 | Republic of Sakha (Yakutia) | Республика Саха (Якутия) | 14 | 08:00:00 | Якутск
|
||||
15 | Republic of North Ossetia – Alania | Республика Северная Осетия — Алания | 15 | 02:00:00 | Владикавказ
|
||||
16 | Republic of Tatarstan | Республика Татарстан | 16 | 02:00:00 | Казань
|
||||
17 | Tyva Republic | Республика Тыва | 17 | 06:00:00 | Кызыл
|
||||
19 | Republic of Khakassia | Республика Хакасия | 19 | 06:00:00 | Абакан
|
||||
62 | Rostov Oblast | Ростовская область | 61 | 02:00:00 | Ростов-на-Дону
|
||||
63 | Ryazan Oblast | Рязанская область | 62 | 02:00:00 | Рязань
|
||||
64 | Samara Oblast | Самарская область | 63 | 03:00:00 | Самара
|
||||
78 | Saint Petersburg | Санкт-Петербург | 78 | 02:00:00 | Санкт-Петербург
|
||||
65 | Saratov Oblast | Саратовская область | 64 | 03:00:00 | Саратов
|
||||
66 | Sakhalin Oblast | Сахалинская область | 65 | 10:00:00 | Южно-Сахалинск
|
||||
67 | Sverdlovsk Oblast | Свердловская область | 66 | 04:00:00 | Екатеринбург
|
||||
79 | Sevastopol | Севастополь | 92 | 02:00:00 | Севастополь
|
||||
68 | Smolensk Oblast | Смоленская область | 67 | 02:00:00 | Смоленск
|
||||
29 | Stavropol Krai | Ставропольский край | 26 | 02:00:00 | Ставрополь
|
||||
69 | Tambov Oblast | Тамбовская область | 68 | 02:00:00 | Тамбов
|
||||
70 | Tver Oblast | Тверская область | 69 | 02:00:00 | Тверь
|
||||
71 | Tomsk Oblast | Томская область | 70 | 06:00:00 | Томск
|
||||
72 | Tula Oblast | Тульская область | 71 | 02:00:00 | Тула
|
||||
73 | Tyumen Oblast | Тюменская область | 72 | 04:00:00 | Тюмень
|
||||
18 | Udmurt Republic | Удмуртская Республика | 18 | 03:00:00 | Ижевск
|
||||
74 | Ulyanovsk Oblast | Ульяновская область | 73 | 03:00:00 | Ульяновск
|
||||
30 | Khabarovsk Krai | Хабаровский край | 27 | 09:00:00 | Хабаровск
|
||||
82 | Khanty-Mansi Autonomous Okrug – Yugra | Ханты-Мансийский автономный округ — Югра | 86 | 04:00:00 | Ханты-Мансийск
|
||||
75 | Chelyabinsk Oblast | Челябинская область | 74 | 04:00:00 | Челябинск
|
||||
20 | Chechen Republic | Чеченская Республика | 20 | 02:00:00 | Грозный
|
||||
21 | Chuvash Republic | Чувашская Республика | 21 | 02:00:00 | Чебоксары
|
||||
83 | Chukotka Autonomous Okrug | Чукотский автономный округ | 87 | 11:00:00 | Анадырь
|
||||
84 | Yamalo-Nenets Autonomous Okrug | Ямало-Ненецкий автономный округ | 89 | 04:00:00 | Салехард
|
||||
76 | Yaroslavl Oblast | Ярославская область | 76 | 02:00:00 | Ярославль
|
||||
|
|
|
|
@ -34,6 +34,7 @@ en:
|
|||
english_name: Name
|
||||
native_name: Name
|
||||
display_name: Name
|
||||
centre: Administrative centre
|
||||
number: Number
|
||||
timezone: Time zone
|
||||
passport:
|
||||
|
|
|
@ -34,6 +34,7 @@ ru:
|
|||
english_name: Название
|
||||
native_name: Название
|
||||
display_name: Название
|
||||
centre: Административный центр
|
||||
number: Номер
|
||||
timezone: Часовой пояс
|
||||
passport:
|
||||
|
|
|
@ -17,6 +17,7 @@ class InitialMigration < ActiveRecord::Migration[6.0]
|
|||
|
||||
t.string :english_name, null: false, index: { unique: true }
|
||||
t.string :native_name, null: false, index: { unique: true }
|
||||
t.string :centre, null: false, index: false
|
||||
|
||||
t.integer :number, null: false, index: { unique: true }
|
||||
t.interval :timezone, null: false, index: false
|
||||
|
@ -226,6 +227,14 @@ class InitialMigration < ActiveRecord::Migration[6.0]
|
|||
native_name !~ '[[:space:]]{1,}$'
|
||||
SQL
|
||||
|
||||
constraint :federal_subjects, :centre, <<~SQL
|
||||
length(centre) BETWEEN 1 AND 255
|
||||
AND
|
||||
centre !~ '^[[:space:]]{1,}'
|
||||
AND
|
||||
centre !~ '[[:space:]]{1,}$'
|
||||
SQL
|
||||
|
||||
constraint :federal_subjects, :number, <<~SQL
|
||||
number > 0
|
||||
SQL
|
||||
|
|
|
@ -4,19 +4,23 @@ require 'csv'
|
|||
|
||||
federal_subjects_filename = Rails.root.join 'config', 'federal_subjects.csv'
|
||||
|
||||
CSV.foreach federal_subjects_filename,
|
||||
col_sep: '|' do |(id, english_name, native_name, number, timezone)|
|
||||
CSV.foreach(
|
||||
federal_subjects_filename,
|
||||
col_sep: '|',
|
||||
) do |(id, english_name, native_name, number, timezone, centre)|
|
||||
id = Integer(id.strip)
|
||||
english_name.strip!
|
||||
native_name.strip!
|
||||
number = Integer(number.strip.sub(/\A0*/, ''))
|
||||
timezone.strip!
|
||||
centre.strip!
|
||||
|
||||
FederalSubject.where(id: id).first_or_create! do |new_federal_subject|
|
||||
new_federal_subject.english_name = english_name
|
||||
new_federal_subject.native_name = native_name
|
||||
new_federal_subject.number = number
|
||||
new_federal_subject.timezone = timezone
|
||||
new_federal_subject.centre = centre
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -252,8 +252,10 @@ CREATE TABLE public.federal_subjects (
|
|||
updated_at timestamp(6) without time zone NOT NULL,
|
||||
english_name character varying NOT NULL,
|
||||
native_name character varying NOT NULL,
|
||||
centre character varying NOT NULL,
|
||||
number integer NOT NULL,
|
||||
timezone interval NOT NULL,
|
||||
CONSTRAINT centre CHECK ((((length((centre)::text) >= 1) AND (length((centre)::text) <= 255)) AND ((centre)::text !~ '^[[:space:]]{1,}'::text) AND ((centre)::text !~ '[[:space:]]{1,}$'::text))),
|
||||
CONSTRAINT english_name CHECK ((((length((english_name)::text) >= 1) AND (length((english_name)::text) <= 255)) AND ((english_name)::text !~ '^[[:space:]]{1,}'::text) AND ((english_name)::text !~ '[[:space:]]{1,}$'::text))),
|
||||
CONSTRAINT native_name CHECK ((((length((native_name)::text) >= 1) AND (length((native_name)::text) <= 255)) AND ((native_name)::text !~ '^[[:space:]]{1,}'::text) AND ((native_name)::text !~ '[[:space:]]{1,}$'::text))),
|
||||
CONSTRAINT number CHECK ((number > 0))
|
||||
|
|
|
@ -17,6 +17,8 @@ FactoryBot.define do
|
|||
|
||||
native_name { english_name }
|
||||
|
||||
centre { Faker::Address.city }
|
||||
|
||||
timezone { "#{[nil, :-].sample}#{rand(0..11).to_s.rjust(2, '0')}:00:00" }
|
||||
end
|
||||
end
|
||||
|
|
|
@ -49,6 +49,22 @@ RSpec.describe FederalSubject do
|
|||
it { is_expected.not_to allow_value 'Foo ' }
|
||||
end
|
||||
|
||||
describe '#centre' do
|
||||
def allow_value(*)
|
||||
super.for :centre
|
||||
end
|
||||
|
||||
it { is_expected.to validate_presence_of :centre }
|
||||
|
||||
it do
|
||||
is_expected.to \
|
||||
validate_length_of(:centre).is_at_least(1).is_at_most(255)
|
||||
end
|
||||
|
||||
it { is_expected.not_to allow_value ' Foo' }
|
||||
it { is_expected.not_to allow_value 'Foo ' }
|
||||
end
|
||||
|
||||
describe '#number' do
|
||||
it { is_expected.to validate_presence_of :number }
|
||||
it { is_expected.to validate_uniqueness_of :number }
|
||||
|
|
Reference in a new issue