From 115f6c107ef8deee52f10b39e5e7d08c8dd329db Mon Sep 17 00:00:00 2001 From: Gabriela Navarro Date: Mon, 18 Aug 2014 20:56:16 +0000 Subject: [PATCH] more_inst_for_users: Add relation to institution and users. --- db/migrate/20140818195821_remove_institution_from_user.rb | 9 +++++++++ db/migrate/20140818200738_create_institution_user_relation_table.rb | 12 ++++++++++++ lib/ext/user.rb | 2 +- lib/institution.rb | 2 +- lib/institutions_users.rb | 4 ++++ 5 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 db/migrate/20140818195821_remove_institution_from_user.rb create mode 100644 db/migrate/20140818200738_create_institution_user_relation_table.rb create mode 100644 lib/institutions_users.rb diff --git a/db/migrate/20140818195821_remove_institution_from_user.rb b/db/migrate/20140818195821_remove_institution_from_user.rb new file mode 100644 index 0000000..37486cd --- /dev/null +++ b/db/migrate/20140818195821_remove_institution_from_user.rb @@ -0,0 +1,9 @@ +class RemoveInstitutionFromUser < ActiveRecord::Migration + def up + remove_column :users, :institution_id + end + + def down + add_column :users, :institution_id + end +end diff --git a/db/migrate/20140818200738_create_institution_user_relation_table.rb b/db/migrate/20140818200738_create_institution_user_relation_table.rb new file mode 100644 index 0000000..7068d72 --- /dev/null +++ b/db/migrate/20140818200738_create_institution_user_relation_table.rb @@ -0,0 +1,12 @@ +class CreateInstitutionUserRelationTable < ActiveRecord::Migration + def up + create_table :institutions_users do |t| + t.belongs_to :user + t.belongs_to :institution + end + end + + def down + drop_table :institutions_users + end +end diff --git a/lib/ext/user.rb b/lib/ext/user.rb index ed8face..9314624 100644 --- a/lib/ext/user.rb +++ b/lib/ext/user.rb @@ -2,7 +2,7 @@ require_dependency 'user' class User - belongs_to :institution + has_and_belongs_to_many :institutions validate :email_different_secondary?, :email_has_already_been_used?, :secondary_email_format, :email_suffix_is_gov? diff --git a/lib/institution.rb b/lib/institution.rb index 930cd3a..159eafc 100644 --- a/lib/institution.rb +++ b/lib/institution.rb @@ -5,7 +5,7 @@ class Institution < ActiveRecord::Base attr_accessible :name, :acronym, :unit_code, :parent_code, :unit_type, :juridical_nature, :sub_juridical_nature, :normalization_level, :version, :cnpj, :type, :governmental_power, :governmental_sphere - has_many :users + has_and_belongs_to_many :users validates :name, :presence=>true, :uniqueness=>true diff --git a/lib/institutions_users.rb b/lib/institutions_users.rb new file mode 100644 index 0000000..e47da86 --- /dev/null +++ b/lib/institutions_users.rb @@ -0,0 +1,4 @@ +class InstitutionUser < ActiveRecord::Base + belongs_to :user + belongs_to :institution +end -- libgit2 0.21.2