5

测试局部变量是否已定义并传递给局部变量的正确语法是什么?

例如,我渲染一个部分

<%= render partial: "data-map", locals: {lat: @model.lat, lon: @model.lon, zoom: 10} %>

在部分需要做类似的事情

<%= map( options: {
  latitude: if lat.defined? ? lat : 0,
  longitude: if lon.defined? ? lon : 0,
  zoom: if zoom.defined? ? zoom : 50
  }
%>

我无法让这个工作。

我还在 API 中看到了以下内容

<% if local_assigns.has_key? :headline %>
  Headline: <%= headline %>
<% end %>

但我也遇到了麻烦。也许我没有得到正确的语法。

感谢任何指针

4

1 回答 1

2

从三元格式中删除 if 如下:

<%= map( options: {
  latitude: defined?(lat) ? lat : 0,
  longitude: defined?(lon) ? lon : 0,
  zoom: defined?(zoom) ? zoom : 50
  }
%>
于 2012-06-03T03:54:10.073 回答