gpt4 book ai didi

ruby-on-rails - 如果 gsub 的替换值为 null,我怎么能有默认值?

转载 作者:太空宇宙 更新时间:2023-11-03 18:29:27 35 4
gpt4 key购买 nike

我目前将其作为一长串 gsub 中的其中一个:

gsub("{Company}", contact.company_name.clear_company.to_s).

但有时 contact.company_name 为空。

所以我从长字符串中爆发出这样的东西:

subject.gsub("{Company}", contact.company_name.clear_company.to_s) unless contact.company_name.blank?

但这看起来又丑又笨重。因为这是整个字符串的样子,所以每个字符串都可能为 nil,这会引发错误:

12     sub_message =
13 message.gsub("{FirstName}", contact.first_name).
14 gsub("{LastName}", contact.last_name).
15 gsub("{Title}", contact.title || "blank").
16 # gsub("{Company}", contact.company_name.clear_company).
17 gsub("{Colleagues}", colleagues.to_sentence).
18 gsub("{NextWeek}", next_week.strftime("%A, %B %d")).
19 gsub("{FollowingWeek}", (Date.today + 14.days).strftime("%A, %B %d")).
20 gsub("{UserFirstName}", contact.user.first_name).
21 gsub("{UserLastName}", contact.user.last_name).
22 gsub("{City}", contact.address.city.titleize || "default city").
23 gsub("{State}", contact.address.state || "default state").
24 gsub("{Zip}", contact.address.zip || "default zip" ).
25 gsub("{Street1}", contact.address.street1.titleize || "default street").
26 gsub("{Today}", (Date.today).strftime("%A, %B %d")).
27 gsub("{CustomField1}", contact.custom_field_1.to_s).
28 gsub("{PageBreak}", "p{page-break-after: always}. ")

我想做这样的事情

gsub("{Company}", contact.company_name.clear_company.to_s || "").

但是好像不行。想法?

最佳答案

最干净的方法是使用 Ruby 1.9.2 的字符串模板功能,您可以完全避免使用 gsub。

"%{company}" % {:company => contact.company_name.clear_company || ""}

关于ruby-on-rails - 如果 gsub 的替换值为 null,我怎么能有默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6287137/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com