如何使用Stripe

时间:2019-03-23 02:07:42

标签: ruby-on-rails stripe-payments

我正在使用Stripe开发支付系统。 我必须在收到条纹网钩后搜索客户。但是会出现以下错误。


ActiveRecord :: StatementInvalid(SQLite3 :: SQLException:在“'cus_xxxxx'附近”:语法错误:选择“用户”。*从“用户”位置(stripe_customer_id'cus_xxxxx')排序“用户”。“ id” ASC LIMIT?):


cus_xxxxx个客户。但是我必须从中删除单引号...

@user = User.where('stripe_customer_id ?', "#{source['customer'].gsub("'", "")}").first

我已经尝试过了。但这是行不通的。

1 个答案:

答案 0 :(得分:1)

您的问题是您在查询中没有使用运算符。例如:stripe_customer_id = ?stripe_customer_id IN (?)。但是有一种更好的方式来编写此代码。

@user = User.find_by({
  stripe_customer_id: source['customer'].delete("'")
})

find_by接受与where类似的参数,但返回第一条记录。另外,哈希语法根据提供的值自动在=INIS NULL之间进行选择。

此外,您可以使用delete方法删除字符串中所有出现的字符串。基准测试表明它比gsub更快。我很奇怪,但是您需要像这样修改字符串。我觉得如果有多余的引号,则提交source的东西都是错的。