部分访问 Sinatra 变量

发布于 2024-12-10 10:26:41 字数 717 浏览 0 评论 0原文

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

,它就可以正常工作但是,如果我将上面的代码放入部分的。

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

I'm fairly new to Sinatra, and I'm trying to access data from a database from within a partial.

Here's an example of a partial that I want on a page:

<% @articles.each do |article| %>
    <ul>
        <li> <%= article.articleName %> </li>
    </ul>
<% end %>

It works fine if I just set up a route like

get '/articles' do
     @article = Articles.all
     erb :articles
end

and the /articles page with something like

<% @articles.each do |article| %>
    <article>
        <p> <%= article.articleName %> </p>
        <p> <%= article.articleBody %> </p>
    </article>
<% end %>

However, it doesn't seem like the above code works if I put it into a partial.

Any help would be appreciated. I'm sure I'm missing something simple.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

萤火眠眠 2024-12-17 10:26:41

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:设置从模板根目录到partial 的路径。这种奇怪的语法 :'partials/_article' 是 Sinatra 的技巧,它使您能够访问子目录中的模板,这是行不通的(我认为): :partials/_article'partials/_article'

Sinatra does not have built-in partials like Rails, but you can use ordinary templates as partials, as mentioned in: http://www.sinatrarb.com/faq.html#partials

Example:

articles template:

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

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

<% end %>

partials/_article template:

Title <%= article.title %>

...

PS: set a path to partial from template root dir. This weird syntax :'partials/_article' is a Sinatra trick, it enables you to access template in subdir, this wouldn't work (I think): :partials/_article or 'partials/_article'.

夏天碎花小短裙 2024-12-17 10:26:41

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

  1. 构建你自己的部分处理程序,如此处
  2. 使用来自的partials.rb 这里

Sinatra has no partial functionality built-in. So you have two options:

  1. build your own partial handler like here or
  2. use the partials.rb from here
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文