0

我开始掌握 Rails 3.1,我希望有人能指出 Gem 的方向,这将允许我在表单上使用依赖选择(或指出如何在 Rails 3.1 中最好地完成此操作)。我遇到了chained_selects插件,但这似乎依赖于原型,所以在3.1中并不理想。

最简单的例子是汽车品牌/型号:

我有 3 个模型:vehicleMake、vehicleModel 和 vehicleTrim。我还有分配表vehicleMake_vehicleModel 和vehicleModel_vehicleTrim,它们指定了适合每个品牌的模型等。

我有一个车辆模型,我试图用品牌、模型和装饰来填充它。车辆模型属于_vehicleMake、vehicleModel 和vehicleTrim。

如何确保模型的下拉列表仅显示所选品牌的模型(因此用于修剪)?第二点,我如何在我的车型中验证这一点?

谢谢!

4

1 回答 1

2

我不知道有任何 jQuery 插件可以做到这一点。但实际上它只是一系列 Ajax 调用。

当从 Make 下拉列表中选择一个选项时,您将其发送到服务器(通过 Ajax),取回关联的模型,并使用这些选项填充下一个下拉列表。然后重复修剪。

至于验证,您可能想要使用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

(在那里使用地图感觉不对,所以也许有更好的方法)

于 2011-06-22T16:32:42.110 回答