我正在处理Rails 3.1,我希望有人可以指向我的Gem方向,这将允许我在表单上使用依赖选择(或指示如何在Rails 3.1中做得最好) 。我遇到过chained_selects插件,但这似乎依赖于原型,所以它在3.1中并不理想。
最简单的例子是汽车品牌/型号:
我有3个型号:vehicleMake,vehicleModel和vehicleTrim。我还有赋值表vehicleMake_vehicleModel和vehicleModel_vehicleTrim,它们指定了适合每个make等的模型。
我有一个车型,我试图填充一个品牌,型号和装饰。车辆型号属于vehicleMake,vehicleModel和vehicleTrim。
如何确保模型的下拉列表仅显示所选品牌的模型(以及修剪)?作为第二点,我如何在我的车型中验证这一点?
谢谢!
答案 0 :(得分:2)
我不知道任何jQuery插件可以做到这一点。但实际上它只是一系列Ajax调用。
当从Make下拉列表中选择一个选项时,您将其发送到服务器(通过Ajax),返回关联的Models,然后使用这些选项填充下一个下拉列表。然后重复修剪。
至于验证,您可能想要使用validates_inclusion_of
或只是手动编写:
validate :model_matches_make?
def model_matches_make?
unless Make_Model.where(make: self.make).map(&:model).includes?(self.model)
errors.add(:make, "is not valid for your model")
end
end
(使用地图感觉不对,所以可能有更好的方法)