为 API 连接设置条件属性

Posted

技术标签:

【中文标题】为 API 连接设置条件属性【英文标题】:setting conditional attributes for API connection 【发布时间】:2022-01-20 04:35:57 【问题描述】:

一个方法需要实例化一个带有各种属性的会话,其中一些是可选的

session = Checkout::Session.create(
            locale: I18n.locale,
            reference_id: id,
            customer_email: @user_mail,
            [...]
          )

最后显示的属性customer_email 是可选的,但如果值不存在,则不应生成它。

customer_email: @user_mail unless !@user_email,

逻辑上遇到语法错误,因为正在生成额外的参数(逗号)

syntax error, unexpected ',', expecting end

因此 API 需要另一个属性。

(customer_email: @user_mail, unless !@user_email)

也失败了,因为括号混淆了

syntax error, unexpected ')', expecting then or ';' or '\n'

这个语法应该如何转换?

【问题讨论】:

【参考方案1】:

您需要将选项哈希提取到变量中并对其进行操作,然后再将其发送到Checkout::Session.create

类似这样的:

 options = 
   locale: I18n.locale,
   reference_id: id
 
 options[:customer_email] = @user_mail if @user_email
 session = Checkout::Session.create(options)

【讨论】:

以上是关于为 API 连接设置条件属性的主要内容,如果未能解决你的问题,请参考以下文章

Java数据库连接的连接API

授权为桌面应用程序时如何设置 Facebook 聊天 API 连接

sqlserver 的交叉连接和内部连接有啥区别吗?

在 psycopg2 中为连接的所有查询设置架构:设置 search_path 时获取竞争条件

条件连接(θ连接),等值连接和自然连接之间的差异

远程要啥条件?