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

Don*_*n P 11 ruby-on-rails ruby-on-rails-4

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

目前我检查是否is_embedded是这样的:

_some_partial.html.erb

<section 
  id="view-dashboard" 
  class="<%= "embedded" if is_embedded %>"
>
Run Code Online (Sandbox Code Playgroud)

但是,如果is_embedded未传入,则会出现错误:undefined local variable or method 'is_embedded'.

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

vee*_*vee 26

您可以检查local_assigns散列,其中包括传递的本地.

<section 
  id="view-dashboard" 
  class="<%= embedded if local_assigns[:is_embedded] %>"
>
Run Code Online (Sandbox Code Playgroud)


Uch*_*nna 8

当rending部分做这个
<%= 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>
Run Code Online (Sandbox Code Playgroud)


LHH*_*LHH 5

你可以检查这个 -

if defined?(is_embedded) && is_embedded
Run Code Online (Sandbox Code Playgroud)

这将检查 is_embedded 是否已定义并且为真