1

我知道这必须有一个简单优雅的答案,但不知何故我无法弄清楚它是什么。我正在尝试将多个样式表传递到 stylesheet_link_tag 中,但结果是错误的。

当我直接调用stylesheet_link_tag "aaa", "bbb"时,我得到以下信息:

<link href="/assets/aaa.css" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/bbb.css" media="screen" rel="stylesheet" type="text/css" />

伟大的!

问题是我的应用程序助手中有一个带有变量的函数:

stylesheet_link_tag(css_includes)

如果我用单个值调用它,一切似乎都很好:

> css_includes = "aaa"
> stylesheet_link_tag(css_includes)
>>>  <link href="/assets/aaa.css" media="screen" rel="stylesheet" type="text/css" />

甜的!

但是如果我尝试传入多个对象,它就不起作用:

> css_includes = "aaa", "bbb"
> stylesheet_link_tag(css_includes)
>>>  <link href="/assets/["aaa", "bbb"].css" media="screen" rel="stylesheet" type="text/css">

这里的正确语法是什么?

谢谢!

4

2 回答 2

2

您需要使用 each 块:

<% ["aaa", "bbb"].each do |name| %>
   stylesheet_link_tag(name)
<% end %>

但是,我认为这不是 Rails 的方式。如果你使用 sass,你可能应该在application.css其中包含“aaa”和“bbb” 。requireimport

于 2013-08-14T18:44:42.660 回答
2

您可以将字符串数组传递给stylesheet_link_tag方法

https://apidock.com/rails/ActionView/Helpers/AssetTagHelper/stylesheet_link_tag

stylesheet_link_tag "random.styles", "/css/stylish"
# => <link href="/assets/random.styles" media="screen" rel="stylesheet" />
#    <link href="/css/stylish.css" media="screen" rel="stylesheet" />
于 2019-08-17T16:00:39.010 回答