通过查询字符串参数选择空记录?

时间:2016-09-08 10:38:34

标签: javascript ruby-on-rails

我的javascript文件中有以下代码,用于过滤我在rails中的表中的记录。

var dict = {
  'columns' : {
    'Sun': 5,
    'Rain': [1,2,3]
  }
}

返回

"columns%5BSun%5D=5&columns%5BRain%5D%5B%5D=1&columns%5BRain%5D%5B%5D=2&columns%5BRain%5D%5B%5D=3"

上面的代码可以正常运行,但它缺少Rain is null

的记录

无论如何,我可以在javascript中获得如下null记录吗?

var dict = {
  'columns' : {
    'Sun': 5,
    'Rain': [1,2,3,null]
  }
}

返回

"columns%5BSun%5D=5&columns%5BRain%5D%5B%5D=1&columns%5BRain%5D%5B%5D=2&columns%5BRain%5D%5B%5D=3&columns%5BRain%5D%5B3%5D="

以上代码无效。

我想将'null'传递给Rails,以便从NULL返回所有ActiveRecord条记录。

提前致谢。

2 个答案:

答案 0 :(得分:2)

我希望这就是你想要的

columns = params[:columns]
rain = columns[:Rain]
rain.each do |r|
    if r.empty?
        YourModel.where(:field => nil) # this query can differ
    else
        YourModel.where(:field => r.to_i) # this query can differ
    end
end

答案 1 :(得分:0)

您可以使用javascript对象并将其添加到数组中。之后转换成json对象。

var Rain = new Array();
obj = new Object();
obj.value = 1;
Rain[0] = obj;
obj = new Object();
obj.value = 2;
Rain[1] = obj;
obj = new Object();
obj.value = null;
Rain[2] = obj;
dict = {
 'columns' : {
 'Sun': 5,
 'Rain': Rain
 }
}
JSON.stringify(dict);
//For converting to Query string use as follows 
var result = $.param(dict);

var Rain = new Array(); obj = new Object(); obj.value = 1; Rain[0] = obj; obj = new Object(); obj.value = 2; Rain[1] = obj; obj = new Object(); obj.value = null; Rain[2] = obj; dict = { 'columns' : { 'Sun': 5, 'Rain': Rain } } JSON.stringify(dict); //For converting to Query string use as follows var result = $.param(dict);