2014-04-11 70 views
1

我想在我的rails模型中添加驗證:本地團隊必須與訪問團隊不同。local_team_id是代表團隊的整數,對於visits_team_id也是相同的。這是我的代碼:如何進行驗證rails

class Match < ActiveRecord::Base 
    validates :mathdate, :presence => true 
    validate :mydate_is_date? 
    validates :stage, :presence => true 
    validates :stage, numericality: {only_integer: true, greater_than_or_equal_to: 1,  less_than_or_equal_to: 6} 
    validates :state, :presence => true 
    validates :state, numericality: {only_integer: true, greater_than_or_equal_to: 1,  less_than_or_equal_to: 3} 
    validates :local_team_id, :presence => true 
    validates :visiting_team_id, :presence => true 
    validates :stadium_id, :presence => true 

def mydate_is_date? 
    errors.add(:contructiondate, 'must be a valid date') if !mathdate.is_a?(Date) 

end 

希望你能幫助我

感謝

+0

我不得不接受這個問題很簡單哈哈。但我試圖解決前面的問題。經過多次嘗試,我無法解決。 – user3521008

回答

2

您可以在Rails中添加驗證,像這樣:

validate :team_ids 

def team_ids 
    # if you want to allow blank/nil values 
    return if local_team_id.nil? && visiting_team_id.nil? 

    if local_team_id == visiting_team_id 
    errors.add(:local_team_id, "can't be equal to visiting_team_id") 
    errors.add(:visiting_team_id, "can't be equal to local_team_id") 
    end 
end