我希望下面的部分内容能够通过本地注入classy
类来获取它,但是我一直在为优雅提供未定义的方法。
//视图
<%= render layout: "layouts/partial", locals: {className: "classy"} do %>
...
<% end>
//局部
<div class="regular-div <%=className if className?%>"></div>
答案 0 :(得分:1)
要检查是否设置了局部变量,请使用local_assigns.has_key?(:some_key)
或local_assigns[:some_key]
安全地访问本地变量。
处理构建类列表的常见任务的一种很好的方法是:
module ApplicationHelper
# Takes an array or list of classes and returns a string
# Example:
# class_list('a', 'b', nil, 'c')
# => "a b"
# class_list(['a', 'b', nil, 'c'])
# => "a b c"
def class_list(*classes)
[*classes].flatten.compact.join(' ')
end
end
然后你可以这样做:
<div class="<%= class_list('regular-div', local_assigns[:className]) %>"></div>