# 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
= 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"
+++ /dev/null
-%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"