部分访问Sinatra变量

时间:2011-10-19 03:47:22

标签: ruby sinatra

我对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 %>

但是,如果我把它放到一个部分中,似乎上面的代码不起作用。

任何帮助将不胜感激。我确定我错过了一些简单的事情。

2 个答案:

答案 0 :(得分:4)

Sinatra没有像Rails这样的内置部分内容,但您可以使用普通模板作为部分模板,如:http://www.sinatrarb.com/faq.html#partials

中所述

示例:

文章模板:

<% @articles.each do |article| %>

<%= erb :'partials/_article', :layout => false, :locals => { :article => article } %>

<% end %>

partials / _article模板:

Title <%= article.title %>

...

PS:从模板根目录设置部分路径。这个奇怪的语法:'partials/_article'是一个Sinatra技巧,它使您能够访问subdir中的模板,这不起作用(我认为)::partials/_article'partials/_article'

答案 1 :(得分:2)

Sinatra没有内置的部分功能。所以你有两个选择:

  1. 构建您自己的部分处理程序,如here
  2. 使用here
  3. 中的partials.rb