Description:
created join tables for contests and users and problems
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r268:5fffb74cc182 - - 6 files changed: 42 inserted, 1 deleted

@@ -0,0 +1,12
1 + class CreateContestsUsersJoinTable < ActiveRecord::Migration
2 + def self.up
3 + create_table :contests_users, :id => false do |t|
4 + t.integer :contest_id
5 + t.integer :user_id
6 + end
7 + end
8 +
9 + def self.down
10 + drop_table :contests_users
11 + end
12 + end
@@ -0,0 +1,12
1 + class CreateContestsProblemsJoinTable < ActiveRecord::Migration
2 + def self.up
3 + create_table :contests_problems, :id => false do |t|
4 + t.integer :contest_id
5 + t.integer :problem_id
6 + end
7 + end
8 +
9 + def self.down
10 + drop_table :contests_problems
11 + end
12 + end
@@ -1,2 +1,6
1 class Contest < ActiveRecord::Base
1 class Contest < ActiveRecord::Base
2 +
3 + has_and_belongs_to_many :users
4 + has_and_belongs_to_many :problems
5 +
2 end
6 end
@@ -1,9 +1,10
1 class Problem < ActiveRecord::Base
1 class Problem < ActiveRecord::Base
2
2
3 belongs_to :description
3 belongs_to :description
4 + has_and_belongs_to_many :contests
4 has_many :test_pairs, :dependent => :delete_all
5 has_many :test_pairs, :dependent => :delete_all
5
6
6 validates_presence_of :name
7 validates_presence_of :name
7 validates_format_of :name, :with => /^\w+$/
8 validates_format_of :name, :with => /^\w+$/
8 validates_presence_of :full_name
9 validates_presence_of :full_name
9
10
@@ -18,12 +18,14
18
18
19 has_one :contest_stat, :class_name => "UserContestStat", :dependent => :destroy
19 has_one :contest_stat, :class_name => "UserContestStat", :dependent => :destroy
20
20
21 belongs_to :site
21 belongs_to :site
22 belongs_to :country
22 belongs_to :country
23
23
24 + has_and_belongs_to_many :contests
25 +
24 named_scope :activated_users, :conditions => {:activated => true}
26 named_scope :activated_users, :conditions => {:activated => true}
25
27
26 validates_presence_of :login
28 validates_presence_of :login
27 validates_uniqueness_of :login
29 validates_uniqueness_of :login
28 validates_format_of :login, :with => /^[\_A-Za-z0-9]+$/
30 validates_format_of :login, :with => /^[\_A-Za-z0-9]+$/
29 validates_length_of :login, :within => 3..30
31 validates_length_of :login, :within => 3..30
@@ -6,13 +6,13
6 # to create the application database on another system, you should be using db:schema:load, not running
6 # to create the application database on another system, you should be using db:schema:load, not running
7 # all the migrations from scratch. The latter is a flawed and unsustainable approach (the more migrations
7 # all the migrations from scratch. The latter is a flawed and unsustainable approach (the more migrations
8 # you'll amass, the slower it'll run and the greater likelihood for issues).
8 # you'll amass, the slower it'll run and the greater likelihood for issues).
9 #
9 #
10 # It's strongly recommended to check this file into your version control system.
10 # It's strongly recommended to check this file into your version control system.
11
11
12 - ActiveRecord::Schema.define(:version => 20100216105730) do
12 + ActiveRecord::Schema.define(:version => 20100216162940) do
13
13
14 create_table "announcements", :force => true do |t|
14 create_table "announcements", :force => true do |t|
15 t.string "author"
15 t.string "author"
16 t.text "body"
16 t.text "body"
17 t.boolean "published"
17 t.boolean "published"
18 t.datetime "created_at"
18 t.datetime "created_at"
@@ -43,12 +43,22
43 t.string "title"
43 t.string "title"
44 t.boolean "enabled"
44 t.boolean "enabled"
45 t.datetime "created_at"
45 t.datetime "created_at"
46 t.datetime "updated_at"
46 t.datetime "updated_at"
47 end
47 end
48
48
49 + create_table "contests_problems", :id => false, :force => true do |t|
50 + t.integer "contest_id"
51 + t.integer "problem_id"
52 + end
53 +
54 + create_table "contests_users", :id => false, :force => true do |t|
55 + t.integer "contest_id"
56 + t.integer "user_id"
57 + end
58 +
49 create_table "countries", :force => true do |t|
59 create_table "countries", :force => true do |t|
50 t.string "name"
60 t.string "name"
51 t.datetime "created_at"
61 t.datetime "created_at"
52 t.datetime "updated_at"
62 t.datetime "updated_at"
53 end
63 end
54
64
You need to be logged in to leave comments. Login now