【问题标题】:Access Sinatra variable in partial部分访问 Sinatra 变量
【发布时间】:2011-10-19 03:47:21
【问题描述】:

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

但是,如果我将上面的代码放入部分代码中,它似乎不起作用。

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

【问题讨论】:

  • 我想值得补充的是,当我使用部分代码运行应用程序时,我得到“nil:NilClass 的未定义方法 `each'”
  • 更多info here...Phrogz 的回答比我的好:)

标签: ruby sinatra


【解决方案1】:

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 技巧,它使您能够访问子目录中的模板,这不起作用(我认为)::partials/_article'partials/_article'

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-07
      • 2011-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-14
      • 1970-01-01
      相关资源
      最近更新 更多