2013-07-01 146 views
2

我有三個型號的Rails:顯示相關模型驗證

class RateCard < ActiveRecord::Base 
    validate :name, :presence => true, :uniqueness => true 

    has_many :rate_card_countries, :dependent => :destroy 
    has_many :rate_card_details, :dependent => :destroy 
    has_many :countries, :through => :rate_card_countries 

end 

class RateCardCountry < ActiveRecord::Base 

    validates :country_id, :presence => true, :uniqueness => true 
    validates :rate_card_id, :presence => true 
    belongs_to :rate_card 
    belongs_to :country 
end 

class Country < Geography 

    has_one :rate_card 
    has_one :rate_card_country 

end 

在rate_cards_controller我想創建/更新rate_cards這樣一個國家應該有一個rate_card .. 對於我已經在RateCardCountry添加獨特的驗證模型。 而NOw我想在創建/更新rate_cards時在rate_card_controller中顯示錯誤.. 需要幫助嗎?

回答

0

如果我正確理解您的意圖,您正嘗試在RateCard和Country之間建立一對多關係。換句話說,一個國家只有一個RateCard,而RateCard可以屬於許多國家。 假設是這種情況,您確實不需要RateCardCountry模型(如果您希望它是多對多的關係,這將非常有用)。

您需要擁有:

class RateCard < ActiveRecord::Base 
    validate :name, :presence => true, :uniqueness => true 
    belongs_to :rate_card 
end 

並確保你已經county_id在RateCard表的外鍵。

然後:

class Country < ActiveRecord::Base 
    has_one :rate_card 
end 

而且,看來,現在您有:

class Country < Geography 

我不知道,如果你是從地理類的子類,因爲你沒有提供其餘的代碼。

希望有所幫助。