diff options
author | Luke Shumaker <LukeShu@sbcglobal.net> | 2014-03-06 18:55:38 -0500 |
---|---|---|
committer | Luke Shumaker <LukeShu@sbcglobal.net> | 2014-03-06 18:55:38 -0500 |
commit | 1788dde36e53c4ef16adc5db2d19f44797325496 (patch) | |
tree | 4d331750a288fcdc052df2ae7dff19c68cd24151 /app/models | |
parent | 39f373778e73c54952dddd11e87f4ba354471622 (diff) |
implement tournament joining
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/tournament.rb | 19 | ||||
-rw-r--r-- | app/models/user.rb | 1 |
2 files changed, 19 insertions, 1 deletions
diff --git a/app/models/tournament.rb b/app/models/tournament.rb index cc915a0..afdd27e 100644 --- a/app/models/tournament.rb +++ b/app/models/tournament.rb @@ -1,3 +1,20 @@ class Tournament < ActiveRecord::Base - belongs_to :game + belongs_to :game + has_many :users, :through => :user_tournament_pair + + def open? + return true + end + + def joinable_by?(user) + return ((not user.nil?) and user.in_group?(:player) and open?) + end + + def join(user) + unless joinable?(user) + return false + end + pair = new_user_tournament_pair(user: user) + return pair.save + end end diff --git a/app/models/user.rb b/app/models/user.rb index 079b870..976ecf4 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1,4 +1,5 @@ class User < ActiveRecord::Base + has_many :tournaments, :through => :user_tournament_pair before_save { self.email = email.downcase } before_save { self.user_name = user_name } |