データベーステーブルがあり、それらは、、、、およびで列にvehicles
区切られています。 year
make
model
trim
year
ユーザーが、、、、、、の順に選択できるフォームを作成したいと思います。各選択(を除く)ではmake
、model
その前の選択を考慮に入れます。trim
year
これを行う方法はありますか?それはどのように見えるでしょうか?
データベーステーブルがあり、それらは、、、、およびで列にvehicles
区切られています。 year
make
model
trim
year
ユーザーが、、、、、、の順に選択できるフォームを作成したいと思います。各選択(を除く)ではmake
、model
その前の選択を考慮に入れます。trim
year
これを行う方法はありますか?それはどのように見えるでしょうか?
さて、あなたはそれを行うためのさまざまな方法をたくさん持っています。
私は次のようにします:
$("#year']").click(function(){
var url = '/get_make_values?year=' + $(this).val()
$("#group").removeOption(/./)
$.get(url, function(data) {
$('#group').addOption(data, false);
});
});
コントローラーで、
def get_make_values
val = params[:year]
#Use val to find records
options = Vehicles.collect{|x| "'#{x.id}' : '#{x.label}'"}
render :text => "{#{options.join(",")}}"
end
モデルでは、いくつかのスコープを定義できます:
class Vehicle < ActiveRecord::Base
scope :by_year, lambda {|v| where(:year => year)}
...
end
お役に立てれば!
よろしく
編集:
部分的に説明します
JavaScriptでは、イベントを年のリストに関連付けてから、すべての make 値を取得するコントローラー アクションに GET 要求を行います。次に、MAKEリストにそれを入力します。メイク、モデル、トリムも行う必要があります
コントローラーでは、make 値を取得するメソッドを作成しています (これは get メソッドによって呼び出されます)。取得した他の値についても行う必要があります。モデルとトリム。
モデルでは、スコープ機能であるクエリを容易にするために使用できるリソースを提案しました。
私の返事を受け入れてください!