我現在有這許多的gsubs長串的一個:如果gsub的替換值爲null,我該如何設置默認值?
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?
但這看起來醜陋和繁瑣。因爲這裏是整個字符串的樣子,每一個都可能是潛在的零這將引發錯誤:
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 || "").
但事實並非如此似乎工作。想法?
怎麼發出googling'「字符串模板」ruby 1.9.2「沒有提供關於此功能的幫助文檔。它看起來很有用。 – 2011-06-09 04:25:26
@Jeremy,[%方法上的文檔](http:// ruby-doc。org/core/classes/String.html#M001127)提及該功能。 – 2011-06-09 11:25:53
非常感謝Mark! – 2011-06-09 15:15:19