Доступ к переменной Sinatra частично - PullRequest
4 голосов
/ 19 октября 2011

Я довольно новичок в Синатре, и я пытаюсь получить доступ к данным из базы данных из частичного.

Вот пример частичного, который я хочу на странице:

<% @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 ]

4 голосов
/ 19 октября 2011

Sinatra не имеет встроенных партиалов, таких как Rails, но вы можете использовать обычные шаблоны в качестве партиалов, как указано в: http://www.sinatrarb.com/faq.html#partials

Пример:

шаблон статьи:

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

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

<% end %>

partials / _article template:

Title <%= article.title %>

...

PS: установить путь к частичному из корневого каталога шаблона. Этот странный синтаксис :'partials/_article' - это трюк Синатры, он позволяет вам получить доступ к шаблону в subdir, это не сработает (я думаю): :partials/_article или 'partials/_article'.

2 голосов
/ 19 октября 2011

Sinatra не имеет встроенной частичной функциональности.Таким образом, у вас есть два варианта:

  1. создать свой собственный частичный обработчик, например здесь или
  2. , используйте partials.rb из здесь
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...