diff --git a/app/models/country_state.rb b/app/models/country_state.rb index 94d4ab3..f328464 100644 --- a/app/models/country_state.rb +++ b/app/models/country_state.rb @@ -8,4 +8,6 @@ class CountryState < ApplicationRecord validates :name, presence: true, uniqueness: true validates :english_name, presence: true, uniqueness: true + + validates :native_name, presence: true, uniqueness: true end diff --git a/app/views/country_states/index.html.erb b/app/views/country_states/index.html.erb index 147e185..abfe2cf 100644 --- a/app/views/country_states/index.html.erb +++ b/app/views/country_states/index.html.erb @@ -8,6 +8,9 @@ <%= CountryState.human_attribute_name :english_name %> + + <%= CountryState.human_attribute_name :native_name %> + @@ -17,6 +20,7 @@ <%= country_state.name %> <%= country_state.english_name %> + <%= country_state.native_name %> <% if policy(country_state).show? %> <%= link_to country_state, diff --git a/app/views/country_states/show.html.erb b/app/views/country_states/show.html.erb index 6fb5c0c..a19d2ef 100644 --- a/app/views/country_states/show.html.erb +++ b/app/views/country_states/show.html.erb @@ -1,6 +1,6 @@

- <%= @country_state.name %> + <%= @country_state.native_name %>
<%= @country_state.english_name %> diff --git a/config/locales/activerecord/en.yml b/config/locales/activerecord/en.yml index defeb9d..9a47e33 100644 --- a/config/locales/activerecord/en.yml +++ b/config/locales/activerecord/en.yml @@ -37,6 +37,7 @@ en: membership_apps: Membership applications name: Name english_name: Name + native_name: Name membership_app: id: ID country_state: State diff --git a/config/locales/activerecord/ru.yml b/config/locales/activerecord/ru.yml index 95ee55b..7427e2e 100644 --- a/config/locales/activerecord/ru.yml +++ b/config/locales/activerecord/ru.yml @@ -37,6 +37,7 @@ ru: membership_apps: Заявления на вступление name: Название english_name: Название + native_name: Название membership_app: id: ID country_state: Регион diff --git a/db/migrate/20190324210722_add_native_name_to_country_states.rb b/db/migrate/20190324210722_add_native_name_to_country_states.rb new file mode 100644 index 0000000..8fb3399 --- /dev/null +++ b/db/migrate/20190324210722_add_native_name_to_country_states.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +class AddNativeNameToCountryStates < ActiveRecord::Migration[6.0] + def change + # rubocop:disable Rails/NotNullColumn + add_column :country_states, :native_name, :string, null: false + add_index :country_states, :native_name, unique: true + # rubocop:enable Rails/NotNullColumn + end +end diff --git a/db/schema.rb b/db/schema.rb index 156fa2d..353fa2f 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2019_03_24_204513) do +ActiveRecord::Schema.define(version: 2019_03_24_210722) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -64,8 +64,10 @@ ActiveRecord::Schema.define(version: 2019_03_24_204513) do t.datetime "updated_at", null: false t.string "name", null: false t.string "english_name", null: false + t.string "native_name", null: false t.index ["english_name"], name: "index_country_states_on_english_name", unique: true t.index ["name"], name: "index_country_states_on_name", unique: true + t.index ["native_name"], name: "index_country_states_on_native_name", unique: true end create_table "membership_apps", force: :cascade do |t| diff --git a/db/seeds.rb b/db/seeds.rb index cb15055..c67ef5f 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -10,7 +10,7 @@ CSV.foreach country_states_filename, col_sep: '|' do |(name, english_name)| next if CountryState.where(name: name).exists? - CountryState.create! name: name, english_name: english_name + CountryState.create! name: name, english_name: english_name, native_name: name end Rails.application.settings(:superuser).tap do |config| diff --git a/factories/country_states.rb b/factories/country_states.rb index 6ac4736..25d4008 100644 --- a/factories/country_states.rb +++ b/factories/country_states.rb @@ -8,5 +8,6 @@ FactoryBot.define do name { Faker::Address.unique.state } english_name { Faker::Address.unique.state } + native_name { Faker::Address.unique.state } end end diff --git a/spec/models/country_state_spec.rb b/spec/models/country_state_spec.rb index a8ddf96..05ff3b6 100644 --- a/spec/models/country_state_spec.rb +++ b/spec/models/country_state_spec.rb @@ -21,7 +21,9 @@ RSpec.describe CountryState do it { is_expected.to validate_presence_of :name } it { is_expected.to validate_presence_of :english_name } + it { is_expected.to validate_presence_of :native_name } it { is_expected.to validate_uniqueness_of :name } it { is_expected.to validate_uniqueness_of :english_name } + it { is_expected.to validate_uniqueness_of :native_name } end