2012-10-23 67 views
1

我有一個數據庫表,其中有vehicles,它們被year,make,modeltrim分隔成列。Rails中依賴於列的選擇

我想建立一個形式,其中用戶可以選擇year,則make,則model,則trim與每個選擇(除了year)考慮到之前它的選擇。

有沒有辦法做到這一點?它會是什麼樣子?

回答

2

那麼,你有很多不同的方式來做到這一點。

我會做下列方式:

$("#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我關聯的事件,一年的名單,然後我做一個GET請求到獲取所有創建值的控制器操作。然後,我填補它使列表 你應該這樣做是爲了製造商,型號,也修剪

控制器我創建一個方法來檢索化妝值(由get方法調用)。您還必須爲其他檢索的值執行此操作。模型和修剪。

模型我剛纔提出了一個資源,您可以使用這個資源來幫助作爲範圍特徵的查詢。

請接受我的回覆!

+0

謝謝!不過,我必須承認,這有點凌駕於我的頭上......你可以擴展在這裏做的事情嗎? –

+0

我將在部分解釋 - 在Javascript中,我將事件與年份列表相關聯,然後向控制器操作發出GET請求,以獲取所有創建值。然後我用它填充MAKE列表 你應該這樣做,模型和修剪也 - 在控制器中,我創建一個方法來檢索make值(由get方法調用)。您還必須爲其他檢索的值執行此操作。模型和修剪。 - 在模型中,我只是提出了一個資源,您可以使用它來簡化作爲範圍特徵的查詢。 - 請接受我的回覆! – felipeclopes