将局部变量注入 rails partial

Inject local variables into rails partial

我希望下面的部分从通过本地人注入的 classy class 中获取,但我一直在为 classy.

获取未定义的方法

//查看

<%= render layout: "layouts/partial", locals: {className: "classy"} do %>
...
<% end>

//部分

<div class="regular-div <%=className if className?%>"></div>

要检查是否设置了局部变量,请使用 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>