我知道这必须有一个简单优雅的答案,但不知怎的,我无法弄清楚它是什么。我正在尝试将多个样式表传递给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">
这里的语法是什么?
谢谢!
答案 0 :(得分:3)
您需要使用每个块:
<% ["aaa", "bbb"].each do |name| %>
stylesheet_link_tag(name)
<% end %>
但是,我不认为这是Rails方式。如果你使用sass,你应该在application.css
和require
中加入“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" />