From a92be45296f8cc3210030602bd83a8d0229206cd Mon Sep 17 00:00:00 2001 From: HombreLaser Date: Wed, 22 Mar 2023 18:01:14 -0600 Subject: AƱade modelo Address MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/address.rb | 24 ++++++++++++++++++++++++ app/models/user_account.rb | 3 +++ app/models/user_account_address.rb | 7 +++++++ 3 files changed, 34 insertions(+) create mode 100644 app/models/user_account_address.rb (limited to 'app') diff --git a/app/models/address.rb b/app/models/address.rb index a19addc..260407d 100644 --- a/app/models/address.rb +++ b/app/models/address.rb @@ -1,2 +1,26 @@ +# frozen_string_literal: true + +# Address +# number: string +# street: string +# zip_code: string +# country: string +# city: string class Address < ApplicationRecord + has_many :user_account_addresses + has_many :user_accounts, through: :user_account_addresses + + validates :number, presence: true + validates :number, comparison: { greater_than_or_equal_to: 0 } + validates :street, presence: true + validates :zip_code, presence: true + validates :country, presence: true + validate :valid_country + validates :city, presence: true + + def valid_country + return unless Country[country].nil? + + errors.add(:country, 'Invalid country') + end end diff --git a/app/models/user_account.rb b/app/models/user_account.rb index cd99441..0f94003 100644 --- a/app/models/user_account.rb +++ b/app/models/user_account.rb @@ -8,6 +8,9 @@ # session_key: string class UserAccount < ApplicationRecord has_secure_password validations: false + has_many :user_account_addresses + has_many :addresses, through: :user_account_addresses + validates :email, presence: true validates :email, uniqueness: true validates :password, presence: true, if: :no_password? diff --git a/app/models/user_account_address.rb b/app/models/user_account_address.rb new file mode 100644 index 0000000..0be86f2 --- /dev/null +++ b/app/models/user_account_address.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +# UserAccountAddress join table +class UserAccountAddress < ApplicationRecord + belongs_to :user_account + belongs_to :address +end -- cgit v1.2.3