【问题标题】:How to convert a string to a plain text如何将字符串转换为纯文本
【发布时间】:2017-04-13 22:57:18
【问题描述】:

我正在尝试实现 Mongo 查询。我写了一个返回查询参数之一的函数:

"'Week Of': {'$in': [02/13/17]}"

我不想在字符串的前后加上双引号。我知道它是一个字符串并且它需要它,但是当我将它注入到我的查询中时,它不起作用,因为它有那些双引号。有没有办法将字符串转换为纯文本,所以它只会是

'Week Of': {'$in': [02/13/17]}

我有一个接受中间散列的模型:

Nosql.aggregate([ p_header + ", " + s_header], {args[0]}, table.target_collection.name.to_sym)

第二个参数是:

args[0] = "'Week Of': {'$in': [02/13/17]}"

这不起作用。但是,当我手动放入时

'Week Of': {'$in': [02/13/17]}

代替

args[0]

它有效。

【问题讨论】:

  • 显示您的代码。此外,双引号不太可能出现在字符串中——它们只会在您显示字符串以指示它是字符串时出现。
  • 更新@dbugger
  • 你确定你的 args[0] 是“'Week Of': {'$in': [02/13/17]}”,因为这是字符串在控制台。
  • 如果 Nosql.aggregate 的第二个参数期望哈希或 bson 或其他什么?
  • 不要使用图片来显示对问题至关重要的信息。我们不能在不输入的情况下重复使用这些信息,搜索引擎也无法对其进行索引。而是将信息复制并粘贴到问题中,并对其进行适当的格式化以提高可读性。

标签: ruby-on-rails ruby mongodb


【解决方案1】:

看起来它需要一个哈希,当你输入它时它会起作用。但是当您将字符串参数放在大括号中时,Ruby 不会以相同的方式解析它,就像您尝试做的那样。你可以用 eval 做一些事情,但是让你的函数生成返回哈希而不是字符串的参数会更简单。

您没有显示该代码,但您想要这样的东西......

def make_my_hash(dates)
  return {"Week of" => { "$in" => dates}}
end

然后将您的呼叫更改为...

Nosql.aggregate([ p_header + ", " + s_header], args[0], table.target_collection.name.to_sym)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-25
    • 1970-01-01
    • 1970-01-01
    • 2021-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多