Skip to content
Snippets Groups Projects
Commit fa3ae24c authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets
Browse files

Group entity. Group has many projects

parent 2e1c3c52
No related branches found
No related tags found
No related merge requests found
# == Schema Information
#
# Table name: groups
#
# id :integer not null, primary key
# name :string(255) not null
# code :string(255) not null
# owner_id :integer not null
# created_at :datetime not null
# updated_at :datetime not null
#
class Group < ActiveRecord::Base
attr_accessible :code, :name, :owner_id
has_many :projects
belongs_to :owner, class_name: "User"
validates :name, presence: true, uniqueness: true
validates :code, presence: true, uniqueness: true
validates :owner_id, presence: true
end
Loading
Loading
@@ -11,6 +11,7 @@ class Project < ActiveRecord::Base
attr_accessor :error_code
 
# Relations
belongs_to :group
belongs_to :owner, class_name: "User"
has_many :users, through: :users_projects
has_many :events, dependent: :destroy
Loading
Loading
@@ -173,4 +174,6 @@ end
# wall_enabled :boolean default(TRUE), not null
# merge_requests_enabled :boolean default(TRUE), not null
# wiki_enabled :boolean default(TRUE), not null
# group_id :integer
#
class CreateGroups < ActiveRecord::Migration
def change
create_table :groups do |t|
t.string :name, null: false
t.string :code, null: false
t.integer :owner_id, null: false
t.timestamps
end
end
end
class AddGroupIdToProject < ActiveRecord::Migration
def change
add_column :projects, :group_id, :integer
end
end
Loading
Loading
@@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
 
ActiveRecord::Schema.define(:version => 20120905043334) do
ActiveRecord::Schema.define(:version => 20121002151033) do
 
create_table "events", :force => true do |t|
t.string "target_type"
Loading
Loading
@@ -25,6 +25,14 @@ ActiveRecord::Schema.define(:version => 20120905043334) do
t.integer "author_id"
end
 
create_table "groups", :force => true do |t|
t.string "name", :null => false
t.string "code", :null => false
t.integer "owner_id", :null => false
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
create_table "issues", :force => true do |t|
t.string "title"
t.integer "assignee_id"
Loading
Loading
@@ -108,6 +116,7 @@ ActiveRecord::Schema.define(:version => 20120905043334) do
t.boolean "wall_enabled", :default => true, :null => false
t.boolean "merge_requests_enabled", :default => true, :null => false
t.boolean "wiki_enabled", :default => true, :null => false
t.integer "group_id"
end
 
create_table "protected_branches", :force => true do |t|
Loading
Loading
# == Schema Information
#
# Table name: groups
#
# id :integer not null, primary key
# name :string(255) not null
# code :string(255) not null
# owner_id :integer not null
# created_at :datetime not null
# updated_at :datetime not null
#
# Read about factories at https://github.com/thoughtbot/factory_girl
FactoryGirl.define do
factory :group do
name "MyString"
code "MyString"
owner_id 1
end
end
# == Schema Information
#
# Table name: groups
#
# id :integer not null, primary key
# name :string(255) not null
# code :string(255) not null
# owner_id :integer not null
# created_at :datetime not null
# updated_at :datetime not null
#
require 'spec_helper'
describe Group do
it { should have_many :projects }
it { should validate_presence_of :name }
it { should validate_uniqueness_of(:name) }
it { should validate_presence_of :code }
it { should validate_uniqueness_of(:code) }
it { should validate_presence_of :owner_id }
end
# == Schema Information
#
# Table name: projects
#
# id :integer not null, primary key
# name :string(255)
# path :string(255)
# description :text
# created_at :datetime not null
# updated_at :datetime not null
# private_flag :boolean default(TRUE), not null
# code :string(255)
# owner_id :integer
# default_branch :string(255)
# issues_enabled :boolean default(TRUE), not null
# wall_enabled :boolean default(TRUE), not null
# merge_requests_enabled :boolean default(TRUE), not null
# wiki_enabled :boolean default(TRUE), not null
# group_id :integer
#
require 'spec_helper'
 
describe Project do
describe "Associations" do
it { should belong_to(:group) }
it { should belong_to(:owner).class_name('User') }
it { should have_many(:users) }
it { should have_many(:events).dependent(:destroy) }
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment