1

我有一个数据库表,vehicles它们由yearmakemodel和分隔成列trim

我想创建一个表单,用户可以在其中选择year,然后是make,然后是model,然后是trim每个选择(除了year),同时考虑到它之前的选择。

有没有办法做到这一点?它会是什么样子?

4

1 回答 1

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 请求,以获取所有 make 值。然后我用它填写 MAKE 列表 你应该这样做来制作、建模和修剪

控制器中,我正在创建一个方法来检索 make 值(由 get 方法调用)。您还必须为其他检索到的值执行此操作。模型和修剪。

模型中,我只是建议了一个资源,您可以使用它来促进查询,即范围功能。

请接受我的回复!

于 2012-10-23T18:05:21.717 回答