From f48ce2f4c934fde3862cdad593eececc7a567d61 Mon Sep 17 00:00:00 2001 From: hellekin Date: Fri, 9 Oct 2020 10:24:06 +0200 Subject: Add Classifications and Resource validations - Turn `has_and_belongs_to_many` into `has_many :through`: now, resources and sections are related through Classifications. - Refactor usage of jsonb column to use ActiveRecord validations - Attention! store_accessor: NOTE: If you are using structured database data types (eg. PostgreSQL hstore/json, or MySQL 5.7+ json) there is no need for the serialization provided by .store. Simply use .store_accessor instead to generate the accessor methods. Be aware that these columns use a string keyed hash and do not allow access using a symbol. NOTE: The default validations with the exception of uniqueness will work. For example, if you want to check for uniqueness with hstore you will need to use a custom validation to handle it. https://api.rubyonrails.org/classes/ActiveRecord/Store.html --- app/models/section.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'app/models/section.rb') diff --git a/app/models/section.rb b/app/models/section.rb index 6cfeb38..7d26882 100644 --- a/app/models/section.rb +++ b/app/models/section.rb @@ -1,11 +1,12 @@ class Section < ApplicationRecord belongs_to :category has_one :taxonomy, through: :category - has_and_belongs_to_many :resources + has_many :classifications + has_many :resources, through: :classifications acts_as_list column: :rank, scope: :category validates :name, uniqueness: { scope: :category_id }, - length: 3..64 + length: { in: 3..64 } end -- cgit v1.2.3