如果你在HAML中编写了javascript,并且将ruby数组插入到javascript中,那么如何使用ruby打印出NULL?
:javascript
$().ready(function() {
$(document).ready(function() {
$("table#hands-table").dataTable( {
"aoColumns" : #{@column_sort_types},
如果@column_sort_types包含空格或nil,则不会打印出NULL。并尝试向ruby数组添加NULL会产生ruby错误。我是否必须执行javascript正则表达式?
答案 0 :(得分:3)
尝试:
#{@column_sort_types.to_json}
to_json适用于nil:
nil.to_json
=> "null"
答案 1 :(得分:1)
如果我理解你的意思,你可以使用ruby的'公开课'能力:
class Array
def to_array_with_null
self.map do |val|
val = "NULL" if val.nil? or (val.respond_to? :empty? and val.empty?)
val
end
end
end
[1, '2', 3, nil, ''].to_array_with_null # => [1, "2", 3, "NULL", "NULL"]
在这种情况下,您可以使用#{@column_sort_types.to_array_with_null}
代替#{@column_sort_types}
。如果我理解你错了,请纠正我。
答案 2 :(得分:1)
:javascript
$().ready(function() {
$(document).ready(function() {
$("table#hands-table").dataTable( {
"aoColumns" : #{@column_sort_types.present? ? @column_sort_types : "NULL"},
这使用与Object#present?
相反的blank?
。这些是ActiveSupport对Object
的补充。对象为空,如果它们为空或者为nil,false或仅为空格的字符串之一。
答案 3 :(得分:1)
只需将nil传递给javascript,javascript会将其视为名为“nil”的变量,然后在javascript中定义变量var nil = null
。
答案 4 :(得分:0)
%Q似乎是我缺少的元素。
%Q[null, null]
答案 5 :(得分:0)
在Ruby on Rails中使用“NULL”将在javascript中打印“NULL”(带引号)。但javascript需要null而不带引号。我仍然无法想出这个。