Ruby Single与Double Quotes

时间:2012-08-02 21:38:02

标签: ruby-on-rails ruby

是否有某种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>

2 个答案:

答案 0 :(得分:7)

字符串是ruby中的字符串。他们都是平等的。唯一的区别是你如何声明它们(单引号,双引号,here-docs和其他东西)。一旦你在一个变量中得到一个字符串值,它的声明方式就无关紧要了。

s1 = 'single quoted'
s1 # => "single quoted"

所以,如果你的字符串没有离开rubyland(也就是说,你没有把它们渲染为javascript或其他),你不应该担心引号。

回复编辑2

您似乎必须以更加手动的方式构建json对象,而不是依赖于Array#to_s的默认行为

要以javascript单引号字符串文字形式发出ruby字符串,您可以执行以下操作:

<script type="text/javascript">
  var s = '<%= ruby_string %>';
</script>

<%= %>构造将呈现没有引号的传递字符串。你自己提供报价。

答案 1 :(得分:1)

双引号作为字符串构造函数允许您插入变量。单引号用于文字。如上所述,字符串一旦被实例化就是一个字符串,显示引号最好留给调用者。