我对此很陌生,所以我希望我能做到这一点。
我正在与Middleman建立投资组合网站。我已经激活了博客扩展,我使用文章作为案例研究。文章包含"特色"在他们的前面,我要么设置为" true"或" false"。
"特色:真"文章显示在主页上。在这些文章的底部,我添加了以下代码,以便能够导航到上一篇和下一篇文章:
<% prev_article = current_article.previous_article %>
<% if prev_article %>
<a href="<%= prev_article.url %>"><%= prev_article.title %></a>
<% end %>
事情是,我想添加一个过滤器,以便只有带有&#34;特色的文章:true&#34;被添加到此循环中。循环需要跳过非特色文章。
我尝试过以下方法:
<% prev_article = current_article.previous_article %>
<% if prev_article && prev_article.data.featured == "true" %>
<a href="<%= prev_article.url %>"><%= prev_article.title %></a>
<% end %>
但是,正如预期的那样,这没有任何结果,因为两个条件都没有得到满足。
澄清一下:让我们说第1,3,5和7条是特色,第2,第4和第6条没有特色。
如果我正在阅读第3条,我需要先前的导航才能跳过第2条并直接转到第1条,因为那个是2,而不是2。
希望有人能帮助我:)。
答案 0 :(得分:0)
我想我现在拥有它。在帮助器映射中创建一个帮助器类,例如:article_helper.rb,如下所示
class ArticleHelper
def get_previous
end
end
然后在你的config.rb文件中添加:
helpers do
def get_previous(article)
if article.previous_article.present? && article.previous_article.data.featured
'<a href="' + article.previous_article.url +'">' + article.previous_article.title + '</a>'
elsif !article.previous_article.present?
return
else
get_previous(article.previous_article)
end
end
end
重新启动你的服务器,希望如果你把它放在你的视图中它可以工作
<%= get_previous(current_article) %>
我希望这能为你解决问题