Я новичок в Ruby, так что это может быть прямо. У меня есть частичное, что я хочу по существу заполнить список.Повторные звонки внутри части Ruby
Вот мой частичный (.erb) Код:
<ul>
<% if locals.has_key? :sermon_commentary %>
<li><i class="material-icons">link</i><a href="<%= sermon_commentary %>">Matthew Henry's Commentary on <%= sermon_passage %></a></li>
<% end %>
<% if locals.has_key? :sermon_passage_lookup %>
<li><i class="material-icons">link</i><a href="<%= sermon_passage_lookup %>"><%= sermon_passage %> on Bible Gateway</a></li>
<% end %>
<% if locals.has_key? :sermon_audio_download %>
<li><i class="material-icons">music_note</i><a href="/audio/<%= sermon_audio_download %>" download="/audio/<%= sermon_audio_download %>">Download this sermon (MP3 ~5mb)</a></li>
<% end %>
</ul>
А вот как я называю его в .html.erb файле:
:sermon_commentary => "https://www.biblegateway.com/resources/matthew-henry/Luke",
:sermon_passage_lookup => "https://www.biblegateway.com/passage/?search=Luke+4%3A14-21&version=NIV",
:sermon_audio_download => "FUSE_7th_August.mp3",
:sermon_video => "https://www.youtube-nocookie.com/embed/VzOYe8nUCS4?rel=0&showinfo=0"
Однако с текущим кодом выше, если я хочу несколько элементов списка (скажем, второго списка «sermon_passage_lookup», он не работает.
Любая помощь будет оценена. a
[something].each do |something|
Но я не уверен, как его структурировать. Спасибо :)
EDIT: исправить ОСУЩЕСТВЛЕНИЕ Taryn в
Спасибо за вашу помощь до сих пор, Taryn. Теперь я вижу отчетливые различия между хэшем и массивом. Я установил свой частичный шаблон в соответствии с вашим предложением:
<ul>
<% if locals.has_key? :sermon_links %>
<% sermon_links.each do |link| %>
<li>
<i class="material-icons"><%= link[:icon] %></i>
<a href="<%= link[:hyperlink] %>"><%= link[:link_label] %></a>
</li>
<% end %>
<% end %>
</ul>
И я использую его в качестве такового:
:sermon_links => [
{ :icon => "link", :hyperlink => "http://www.facebook.com/", :link_label => "Testing" },
{ :icon => "link", :hyperlink => "http://google.com/", :link_label => "Testing2" }
]
К сожалению, я получаю сообщение об ошибке. Похоже, хеш «link» не распознается? Вот что бросает Chrome на меня:
NameError at /resources/sermons/the-fifth-act/fuse-14-08-16.html undefined local variable or method 'icon' for #<Middleman::Application:0x70168621815860>
'undefined local variable or method 'icon'' Звучит так, будто у вас есть слово' icon' вместо ': icon' где-то ... или что-то подобное. Ruby ожидает, что это будет фактическое имя переменной, но вы, вероятно, имеете в виду что-то другое, например, символ. Возможно, у вас есть 'link [icon]' где вы должны иметь ссылку [: icon] '? –
Несомненно, спасибо Тарыну. Кажется, теперь это рендеринг, но с еще одним причудой; с '<% = link [: icon]%>' и '{: icon =>" link ",: hyperlink =>" http://www.facebook.com/ ",: link_label =>" Beau "},' Я должен видеть это как вывод HTML: ' ссылка' однако я получаю кучу, если случайные символы в DOM: ' ссылка 'Любая идея, почему это может произойти? Еще раз спасибо за вашу помощь Тарын. Вы были спасателем жизни! – beauSpeak
Новые ошибки должны быть поставлены в новый вопрос ... также кодовое форматирование в комментариях поистине ужасно и невозможно прочитать: P Можете ли вы задать новый вопрос - вы можете опубликовать ссылку здесь, чтобы я увидел ее в своем почтовом ящике :) –