如何检查局部变量是否定义在局部变量中?

And*_*vey 5 ruby-on-rails

测试本地变量是否已定义并将其传递给部分的正确语法是什么?

例如,我渲染部分

<%= render partial: "data-map", locals: {lat: @model.lat, lon: @model.lon, zoom: 10} %>
Run Code Online (Sandbox Code Playgroud)

并且在部分需要做类似的事情

<%= map( options: {
  latitude: if lat.defined? ? lat : 0,
  longitude: if lon.defined? ? lon : 0,
  zoom: if zoom.defined? ? zoom : 50
  }
%>
Run Code Online (Sandbox Code Playgroud)

我很难让这个工作。

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

<% if local_assigns.has_key? :headline %>
  Headline: <%= headline %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

但我也遇到了麻烦。也许我的语法不正确。

感谢任何指点

Ani*_*nil 2

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

<%= map( options: {
  latitude: defined?(lat) ? lat : 0,
  longitude: defined?(lon) ? lon : 0,
  zoom: defined?(zoom) ? zoom : 50
  }
%>
Run Code Online (Sandbox Code Playgroud)