是否有某种Ruby to_s
方法将变量更改为单引号字符串而不是双引号?
说我有
date = Time.now
date.to_s
我希望输出为'2012-08-01 22:00:15'。我该怎么做呢?或者有没有方法将“”字符串转换为''字符串?
谢谢!
编辑 - 更多细节
我正在使用Rails在数据库中显示一些数据。我已经从我的Controller / Model中创建了@instanceVar
作为数组数组。
<% outer = [] %>
<% inner = [] %>
<% @instanceVar.each do |events| %>
<% events.each do |event| %>
<% inner << [event.date, event.total] %>
<% end %>
<% outer << inner %>
<% end %>
我需要event.date
作为单引号字符串。
<% inner << ['event.date', event.total] %>
只是将字event.date
字面添加到数组中,然后
<% inner << ["#{event.date}", event.total] %>
将日期用双引号括起来。
EDIT2
<script>
$.jqplot('trendingEvents', <%= outer %>,
{
#options go here
});
</script>
答案 0 :(得分:7)
字符串是ruby中的字符串。他们都是平等的。唯一的区别是你如何声明它们(单引号,双引号,here-docs和其他东西)。一旦你在一个变量中得到一个字符串值,它的声明方式就无关紧要了。
s1 = 'single quoted'
s1 # => "single quoted"
所以,如果你的字符串没有离开rubyland(也就是说,你没有把它们渲染为javascript或其他),你不应该担心引号。
您似乎必须以更加手动的方式构建json对象,而不是依赖于Array#to_s
的默认行为
要以javascript单引号字符串文字形式发出ruby字符串,您可以执行以下操作:
<script type="text/javascript">
var s = '<%= ruby_string %>';
</script>
<%= %>
构造将呈现没有引号的传递字符串。你自己提供报价。
答案 1 :(得分:1)
双引号作为字符串构造函数允许您插入变量。单引号用于文字。如上所述,字符串一旦被实例化就是一个字符串,显示引号最好留给调用者。