我有一个看起来像这样的属性:
data-text = "I won ### by playing..."
其中### 应该是我在@credits 中的一个值。
我应该怎么把它放在那里?
我在尝试这样做时遇到了同样的麻烦:
data-url = <%= request.scheme %> + "//" + <%= request.port %>
在这种情况下,我不知道如何放置应该围绕整个方案+端口的“”。
谢谢
我有一个看起来像这样的属性:
data-text = "I won ### by playing..."
其中### 应该是我在@credits 中的一个值。
我应该怎么把它放在那里?
我在尝试这样做时遇到了同样的麻烦:
data-url = <%= request.scheme %> + "//" + <%= request.port %>
在这种情况下,我不知道如何放置应该围绕整个方案+端口的“”。
谢谢
data-text = "I won #{@credits} by playing..."
您可以对其他字符串应用相同的原则,如下所示:
data-url = "#{request.scheme}//#{request.port}"
当你有一个 ERB 文件时,"
它只与 Ruby 内部的<% %>
标签交互。在他们之外,它被 Ruby 忽略。
<html>
<tag data-text = "I won <%= @credits %> by playing..."
data-url = "<%= request.scheme %>//<%= request.port %>"></tag>
</html>
根据您对这些变量的值,将产生:
<html>
<tag data-text = "I won 42 by playing..."
data-url = "example//3000"></tag>
</html>
我知道查尔斯的解决方案有效,因为我以前使用过,而路易斯的解决方案可能也有效,尽管我自己以前没有使用过这种风格。
然而,有一个更清洁的解决方案,而不是难看的硬编码 html 代码。它们是标签助手和链接助手。
看看它们在处理数据属性时有多干净:
link_to "homepage", root_path, data: { text: "I won #{@credit}" }
content_tag "div", data: {url: "#{request.scheme}//#{request.port}"}
从 Rails 7 开始,有一个新的方便的帮助器 tag.attributes允许生成 HTML 标记属性,如下所示:
<html>
<body>
<tag
<%= tag.attributes(
data: {
text: "I won #{@credits} by playing...",
url: "#{request.scheme}//#{request.port}"
}
) %>
>
</tag>
</body>
</html>
更多示例可以在这里找到。
资料来源: