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

Ruby on rails 如何检查局部变量是否在局部变量中定义?,ruby-on-rails,Ruby On Rails,如果定义了局部变量并将其传递给了分部变量,那么测试的正确语法是什么 例如,我渲染一个局部 <%= 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? ? l

如果定义了局部变量并将其传递给了分部变量,那么测试的正确语法是什么

例如,我渲染一个局部

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

标题:
但我在这方面也有困难。也许我的语法不正确


感谢所有指针

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

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


谢谢你,阿尼尔。这将给出
未定义的方法“已定义”
。刚才这里有另一个答案,它起作用了。但似乎已被删除。我使用了
定义(lat)?lat:0
。我想你有两个问题。1.三元if的语法。2.defined?的语法?。定义后跟一个变量,以查看是否定义了该变量。它是否如图所示工作?我已经重新考虑并测试了这个答案。请确认它也适用于您。谢谢。只是做了一个小的修改以反映我使用的语法。工作完美。谢谢我批准了编辑。关于你问题的第二部分。尝试以下操作:纬度:本地。\u分配。是否有\u键?(:lat)?lat:0 etcI不知道
本地\u分配
。我是从这个问题中发现的。我能够使用
local_assigns[:some_var]| | some_default