0

私はRails3.1を理解し始めており、誰かが私をGemの方向に向けて、フォームで依存選択を使用できるようにすることを望んでいます(または、これがRails 3.1でどのように最適に行われるかを示します)。chained_selectsプラグインに出くわしましたが、それはプロトタイプに依存しているようで、3.1では理想的ではありません。

この最も簡単な例は、自動車のメーカー/モデルです。

私には、VehicleMake、VehicleModel、VehicleTrimの3つのモデルがあります。また、各メーカーに適したモデルなどを指定する割り当てテーブルvehicleMake_vehicleModelとvehicleModel_vehicleTrimもあります。

私は、メーカー、モデル、トリムを追加しようとしている車両モデルを持っています。車両モデルは、vehicleMake、VehicleModel、およびVehicleTrimに属します。

モデルのドロップダウンに、選択された(したがってトリム用の)メーカーのモデルのみが表示されるようにするにはどうすればよいですか?2番目のポイントとして、これを自分の車両モデルでどのように検証できますか?

ありがとう!

4

1 に答える 1

2

私は頭のてっぺんからそれを行うjQueryプラグインを知りません。しかし、実際には、それは単なる一連のAjax呼び出しです。

[作成]ドロップダウンからオプションを選択すると、それをサーバーに(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 に答える