在某种程度上,我只想在传入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'
。
我是否总是需要传递它?或者有一种方法可以检查它是否存在并且如果不存在则没有错误就是真的。
答案 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 %>"
>