如何检查本地是否在部分中定义?

时间:2012-06-03 03:33:21

标签: ruby-on-rails

测试locals是否已定义并传递给部分?

的正确语法是什么

例如,我渲染部分

<%= 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 %>

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

感谢任何指针

1 个答案:

答案 0 :(得分:1)

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

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