Shopify 插件脚本编辑器 - 未定义的方法

Shopify plugin Script Editor - undefined method

我在 Shopify 中使用名为 Script Editor 的插件工作,它给出了一个错误:
undefined method 'end_with?' for nil

我对 Ruby 的语法不太好,想寻求帮助,了解如果客户在这一行发送的电子邮件为空或不存在,如何退出命令:if customer && customer.email.end_with?("@mycompany.com")

这是Ruby中的代码:

Input.cart.line_items.each do |line_item|
  next if line_item.variant.product.gift_card?
  discount = 1

  customer = Input.cart.customer
  if customer && customer.email.end_with?("@mycompany.com") //<< needs a better condition
    message = "Lorem Ipsum"
    discount = 0.2
  end
  next unless discount < 1
  
  line_item.change_line_price(
    line_item.line_price * discount,
    message: message,
  )
end

Output.cart = Input.cart

您可以使用 ruby 的安全导航运算符“&.”。

Input.cart.line_items.each do |line_item|
  next if line_item.variant.product.gift_card?
  discount = 1

  customer = Input.cart.customer
  if customer&.email&.end_with?("@mycompany.com")
    message = "Lorem Ipsum"
    discount = 0.2
  end
  next unless discount < 1
  
  line_item.change_line_price(
    line_item.line_price * discount,
    message: message,
  )
end

Output.cart = Input.cart

来自doc's

&.,称为“安全导航运算符”,允许在接收者为零时跳过方法调用。如果调用被跳过,它 returns nil 并且不评估方法的参数。

参考:https://ruby-doc.org/core-2.6/doc/syntax/calling_methods_rdoc.html