我有三个模特
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模型中添加了唯一性验证。 并且我想在创建/更新rate_cards时在rate_card_controller中显示错误。 需要帮助吗?
答案 0 :(得分:0)
如果我理解你的意图,你正试图在RateCard和Country之间建立一对多的关系。换句话说,一个国家只有一个RateCard,而RateCard可以属于许多国家。 假设是这种情况,你真的不需要RateCardCountry模型(如果你希望它是一个多对多的关系,这将是有用的。)
您需要:
class RateCard < ActiveRecord::Base
validate :name, :presence => true, :uniqueness => true
belongs_to :rate_card
end
并确保在RateCard表中有country_id外键。
然后:
class Country < ActiveRecord::Base
has_one :rate_card
end
此外,现在看来你有:
class Country < Geography
我不确定你是否是Geography类的子类,因为你没有提供剩下的代码。
希望有所帮助。