OSDN Git Service

Select teacher or student on registration
authoreagletmt <eagletmt@gmail.com>
Tue, 9 Oct 2012 05:34:05 +0000 (14:34 +0900)
committereagletmt <eagletmt@gmail.com>
Tue, 9 Oct 2012 05:34:05 +0000 (14:34 +0900)
CutenServer/app/models/user.rb
CutenServer/app/views/devise/registrations/new.html.haml
CutenServer/app/views/users/sessions/new.html.haml [deleted file]

index a88b1ab..ddcf03a 100644 (file)
@@ -14,9 +14,23 @@ class User < ActiveRecord::Base
   # attr_accessible :title, :body
 
   has_many :achievements
+  belongs_to :teacher
+  attr_accessible :teacher_id
 
+  validate :validates_student_or_teacher
   STUDENT_NUMBER_FORMAT = /\A[0-9A-Z]+\z/
-  validates_format_of :student_number, :with => STUDENT_NUMBER_FORMAT
 
   include JsonWithoutTimestamps
+
+  def validates_student_or_teacher
+    if student_number.blank?
+      if teacher.nil?
+        errors.add :student_number, 'is blank'
+      end
+    else
+      if student_number !~ STUDENT_NUMBER_FORMAT
+        errors.add :student_number, 'is invalid format'
+      end
+    end
+  end
 end
index ecd7e72..7887141 100644 (file)
@@ -17,5 +17,8 @@
     = f.label :student_number
     %br/
     = f.text_field :student_number
+  %div
+    = f.label :teacher_id
+    = f.select(:teacher_id, [['Student', nil]] + Teacher.all.map { |t| [t.name, t.id] })
   %div= f.submit "Sign up"
 = render "devise/shared/links"
diff --git a/CutenServer/app/views/users/sessions/new.html.haml b/CutenServer/app/views/users/sessions/new.html.haml
deleted file mode 100644 (file)
index ea91eb6..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-%h2 Sign in
-%p#alert= alert
-
-= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f|
-  %div
-    = f.label :email
-    %br/
-    = f.email_field :email
-  %div
-    = f.label :password
-    %br/
-    = f.password_field :password
-  - if devise_mapping.rememberable?
-    %div
-      = f.check_box :remember_me
-      = f.label :remember_me
-  %div= f.submit "Sign in"
-= render "devise/shared/links"