【问题标题】:How to escape Salesforce search query如何逃避 Salesforce 搜索查询
【发布时间】:2015-02-10 05:30:49
【问题描述】:

我正在使用Salesforce ruby gem 执行以下操作

@client.search("FIND {#{@email}}")

@email 返回用户的电子邮件地址。在测试期间,我有一个类似test+test@example.com 的电子邮件地址,这导致了 MALFORMED_SEARCH 错误。我尝试在电子邮件上拨打to_json,但这并没有解决问题。我应该在这里做什么逃避?有没有通用的方法来做到这一点? (我想避免转义特定字符,如“+”)

谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 salesforce


    【解决方案1】:

    根据SOSL specification,+ 是保留字符,必须用反斜杠转义。所有需要转义的字符都是? & | ! { } [ ] ( ) ^ ~ * : \ " ' + -

    【讨论】:

      【解决方案2】:

      要转义这些字符,您可以使用以下gsub

      "email+special@example.net".gsub(/(\?|&|\||\!|\{|\}|\[|\]|\(|\)|\^|\~|\*|\:|\\|\"|\'|\+|\-)/){|special| "\\" + special }
      

      原答案:Escape special characters in ruby string to match Salesforce SOQL requirements

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-10-23
        • 1970-01-01
        • 1970-01-01
        • 2011-06-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-14
        相关资源
        最近更新 更多