我是Sinatra的新手,我正在尝试从部分数据库中访问数据。
这是我想在页面上放置的一个局部示例:
<% @articles.each do |article| %>
<ul>
<li> <%= article.articleName %> </li>
</ul>
<% end %>
如果我只设置一个像
这样的路由就可以了get '/articles' do
@article = Articles.all
erb :articles
end
和/articles页面加上类似
的内容<% @articles.each do |article| %>
<article>
<p> <%= article.articleName %> </p>
<p> <%= article.articleBody %> </p>
</article>
<% end %>
然而,如果我把上面的代码放入局部,它似乎不工作。任何帮助都会很感激。我肯定我错过了一些简单的东西。
Sinatra不像Rails那样有内置的部分,但是您可以使用普通模板作为部分,如http://www.sinatrarb.com/faq.html#partials
所述:的例子:
文章模板:
<% @articles.each do |article| %>
<%= erb :'partials/_article', :layout => false, :locals => { :article => article } %>
<% end %>
泛音/_article模板:
Title <%= article.title %>
...
PS:设置从模板根目录开始的部分路径。这个奇怪的语法:'partials/_article'
是Sinatra的伎俩,它使您能够访问子目录中的模板,这不会工作(我认为)::partials/_article
或'partials/_article'
.
Sinatra没有内置的部分功能。所以你有两个选择:
- 构建自己的部分处理程序,如这里或
- 使用偏导。rb from here