6

是否有某种 Rubyto_s方法可以将变量更改为单引号字符串而不是双引号?

说我有

date = Time.now
date.to_s

我希望输出为'2012-08-01 22:00:15'。我该怎么做呢?或者有没有将“”字符串转换为“”字符串的方法?

谢谢!

编辑 - 更多细节

我正在使用 Rails 在数据库中显示一些数据。我已经@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] %>

将日期放在双引号中。

编辑2

<script>
  $.jqplot('trendingEvents', <%= outer %>,
  {
    #options go here
  });
</script>
4

2 回答 2

7

字符串是 ruby​​ 中的字符串。他们都是平等的。唯一的区别是你如何声明它们(单引号、双引号、here-docs 和其他可能的东西)。一旦你在一个变量中获得了一个字符串值,它是如何声明的都没有关系。

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

因此,如果您的字符串不离开 ruby​​land(也就是说,您不将它们呈现为 javascript 或其他),您不应该担心引号。

对编辑 2 的回应

看来您必须以更手动的方式构建 json 对象,而不是依赖于Array#to_s

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

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

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

于 2012-08-02T21:45:31.743 回答
1

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

于 2012-08-02T21:50:09.530 回答