所以我有一个循环遍历我的所有文章,每篇文章都有一个包含文件名称(png文件)的横幅。当我使用这段代码时使用heroku上传我的文件时遇到了问题:
ERROR 1064 (42000): sphinxql: syntax error, unexpected OR, expecting $end near 'OR cost=5'
更具体地说,我使用此代码在我的应用程序的另一部分设置了url部分:
<% @articles.visible.each do |article| %>
<div class="article-card" style="background-image: url(/assets/blog_headers/<%=article.banner%>);">
我现在正在尝试在这里实现相同的逻辑,但是我无法从循环中访问文章变量,这就是我目前所拥有的:
url(<%= image_url('blog_headers/blog_header.png')%>)
答案 0 :(得分:1)
一旦你进入了一个erb标签,(<%= %>
)你只是简单的红宝石......你不应该使用另一个嵌套的erb标签。
例如,而不是:
<%= image_url('blog_headers/<%=article.banner%>')%>
使用:
<%= image_url("blog_headers/#{article.banner}")%>
请注意,我还将单引号:'
更改为双引号"
,以便对字符串进行插值(并将#{}
评估为ruby)
答案 1 :(得分:0)
内部&lt;%= image_url(&#39; blog_headers /&lt;%= article.banner%&gt;&#39;)%&gt; 都是红宝石。不要使用&lt; %%&gt;再次。你可以试试这个:
<%= image_url('blog_headers/'+article.banner+'\'')%>
或试试这个:
<div class="article-card" style='background-image: url(<%= image_url("blog_headers/#{article.banner}")%>);'>
小心引用。
答案 2 :(得分:0)
以下是您应该对视图应用的方式,如下所示......
String foo = Objects.toString(getFoo());
如果您没有任何应该出现在图像上的消息文本,那么您可以使用上面的代码来填充图像。
否则通过在div标签中指定样式将其设置为背景图像。