我有一个数据库表,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中,我将事件与年份列表相关联,然后我向控制器操作发出 GET 请求,以获取所有 make 值。然后我用它填写 MAKE 列表 你应该这样做来制作、建模和修剪
在控制器中,我正在创建一个方法来检索 make 值(由 get 方法调用)。您还必须为其他检索到的值执行此操作。模型和修剪。
在模型中,我只是建议了一个资源,您可以使用它来促进查询,即范围功能。
请接受我的回复!