将多个字符串传递给stylesheet_link_tag

时间:2013-08-14 18:25:36

标签: css ruby-on-rails ruby-on-rails-3 asset-pipeline

我知道这必须有一个简单优雅的答案,但不知怎的,我无法弄清楚它是什么。我正在尝试将多个样式表传递给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">

这里的语法是什么?

谢谢!

2 个答案:

答案 0 :(得分:3)

您需要使用每个块:

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

但是,我不认为这是Rails方式。如果你使用sass,你应该在application.cssrequire中加入“aaa”和“bbb”。

答案 1 :(得分:1)

您可以将字符串数组传递给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" />