如何处理不总是传入的邮件部分属性?

问题描述 投票:0回答:1

我有一个邮件部分支持传入属性(如果存在),但不需要它。不幸的是,如果我不包含该属性,则会引发异常,因为要调用该属性,我需要调用具有相同名称的方法:

邮件模板:

<%= render partial: 'partials/foobar', first_name: 'John', last_name: 'Smith', phone_number: '555-555-4444' %>

foobar部分:

<%= first_name %>
<%= last_name %>
<%= phone_number %>

如果我在部分插入语句中不包括phone_number

<%= render partial: 'partials/foobar', first_name: 'John', last_name: 'Smith' %>

然后会引发异常,因为没有传入phone_number,因此模板将没有名为phone_number的方法。

有什么方法可以解释像这样的“可选”部分参数?

ruby-on-rails actionmailer
1个回答
1
投票

您可以将可选参数传递为nil:

<%= render partial: 'partials/foobar', first_name: 'John', last_name: 'Smith', phone_number: nil %>

然后在视图中添加一个检查phone_number的值,或者只打印出nil值,这将留下一个空行。

<% if phone_number %>
  <%= phone_number %>
<% end %>

另一种选择是检查是否定义了phone_number。

<% if defined? phone_number %>
  <%= phone_number %>
<% end %>
© www.soinside.com 2019 - 2024. All rights reserved.