撰寫這程式的思維是,adult 是學生資料表 adultclasses 是學生選課資料表,我想要達到的要求是 當資料建檔人員鍵入學生選課資料時,要避免輸入不存在於 adult 學生資料表的 student_id. 反覆測了幾次沒能成功
另外我的 rails 版本較為老舊尚未昇級 目前為 Rails 3.0.10
由於在建立程式時誤用了複數名稱,因此在 adultclasse.rb 裏做了如下的補救
# encoding: utf-8
class adultClasse < ActiveRecord::Base
set_table_name "adult_classes"
belongs_to :adult
validates :student_id, :presence => {:message => "請您必須填寫學生id"},
:length => {:message => "學生id最短4個數字,最長12個數字", :minimum => 4, :maximum => 12}
end
在 adultclasses_controller.rb 的 cretae 裏做了如下的修改
def create
@adult_class = AdultClasse.new(params[:adult_classe])
@adults_session_descriptions = AdultsSessionDescription.all
if
@adult_class = @adult_class.find(:student_id) == Adult.find_by_student_id(:student_id)
flash[:notice] = "查無該筆學生id記錄!"
redirect_to:action => :index
else
respond_to do |format|
if @adult_class.save
format.html { redirect_to(@adult_class, :notice => 'adult classe was successfully created.') }
format.xml { render :xml => @adult_class, :status => :created, :location => @adult_class }
else
format.html { render :action => "new" }
format.xml { render :xml => @adult_class.errors, :status => :unprocessable_entity }
end
end
end
adult.rb 裏的內容
has_many :adult_classe, :dependent => :destroy