2011-06-22 5 views
0

私はRails 3.1のグリップを手に入れています。宝石の方向を指し示すことで、従属する選択肢をフォーム上で使用することができますRails 3.1で最もうまくいった)。私はchained_selectsプラグインに出くわしましたが、それはプロトタイプに依存しているようですので、3.1では理想的ではありません。 vehicleMake、vehicleModelとvehicleTrim:私は3つのモデルを持っているRails 3.1 Dependent/Cascading Dropdowns

本の最も単純な例では/車が可能なモデルです。私はまた、各モデルに適したモデルを指定する割り当て表vehicleMake_vehicleModelとvehicleModel_vehicleTrimを持っています。

私はモデル、モデル、トリムを作成しようとしています。車両モデルは、vehMake、vehicleModel、およびvehicleTrimに属します。

モデルのドロップダウンには、選択された(したがってトリミングする)モデルのモデルのみが表示されます。第2のポイントとして、私はこのモデルを自分の車両モデルでどのように検証できますか?

ありがとうございます!

+0

私は[ブログを作成Rails 3.1でカスケード・ドロップダウンを作成するための私の最新の解決策(Ajaxは必要ありません)を詳しく説明している記事(http://homeonrails.blogspot.com/2012/01/rails-31-linked-dropdown-cascading.html)です。 –

答えて

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 

(マップを使用すると、ので、多分もっと良い方法がありますが間違っている感じ)