Rails 4:检查局部变量是否存在并且在局部变量中是真的

时间:2014-04-11 16:52:34

标签: ruby-on-rails ruby-on-rails-4

在某种程度上,我只想在传入is_embedded局部变量并且为真时添加一个类。我怎么检查这个?

目前我检查is_embedded是否为真:

_some_partial.html.erb

<section 
  id="view-dashboard" 
  class="<%= "embedded" if is_embedded %>"
>

但是,如果未传递is_embedded,则会出错:undefined local variable or method 'is_embedded'

我是否总是需要传递它?或者有一种方法可以检查它是否存在并且如果不存在则没有错误就是真的。

5 个答案:

答案 0 :(得分:20)

您可以查看local_assigns哈希,其中包括传递的本地人。

<section 
  id="view-dashboard" 
  class="<%= embedded if local_assigns[:is_embedded] %>"
>

答案 1 :(得分:7)

当撕裂部分时这样做 <%= render partial: "some_partial", locals: {is_embedded: true} %>

#_some_partial.html.erb
<%
 #locals
 is_embedded ||= false
%>
<section
id="view-dashboard"
class="<%= "embedded" if is_embedded %>">hhd</section>

答案 2 :(得分:3)

你可以检查一下 -

if defined?(is_embedded) && is_embedded

这将检查是否定义了is_embedded并且它是真的

答案 3 :(得分:0)

如果是实例变量,

class="<%= "embedded" if @is_embedded %>"

答案 4 :(得分:0)

如果没有定义,可以在partial中将默认值设置为false:

<% is_embedded ||= false -%>
<section 
  id="view-dashboard" 
  class="<%= "embedded" if is_embedded %>"
>
相关问题