我想迭代我在show中创建的卡片
以下是索引中的代码:
<div class="container-page">
<div class="padding-page">
<div class="container-fluid" id="start-cards">
<div class="row">
<h1 class="text-center">Let's</h1>
<ul class="list-inline text-center">
<% @hiraganas.each do |hiragana| %>
<li>
<div class="col-sm-3 col-xs-4 col-md-3 container-cards">
<div class="card-details">
<span class="card-question img-popover" data-content="<h4 class='text-center letter-uppercase'><%= @hiragana.upletter %></h4><p class='text-center'><%= @hiragana.transcription %></p>"><i class="fa fa-eye fa-lg"></i></span>
<div class="prononciation"><i class="fa fa-comment"></i></div>
<div class="audioclick">
<p><i class="fa fa-volume-off fa-lg"><%= @hiragana.audioclick %></i></p>
</div>
<div class="card-hiragana hiragana-<%=@hiragana.upletter.downcase.last%>">
<p><%= @hiragana.ideoone %></p>
</div>
<div class="card-katakana">
<p><%= @hiragana.ideotwo %></p>
</div>
</div>
</div>
</li>
<% end %>
</ul>
</div>
</div>
</div>
</div>
我有一个问题:更好的错误告诉我[![在此处输入图像描述] [2]] [2]未定义的方法使用'upletter',这是我用来在popover中生成字母的方法。
<% @hiraganas.each do |hiragana| %>
<li>
<div class="col-sm-3 col-xs-4 col-md-3 container-cards">
<div class="card-details">
<span class="card-question img-popover" data-content="<h4 class='text-center letter-uppercase'><%= @hiragana.upletter %></h4><p class='text-center'><%= @hiragana.transcription %></p>"><i class="fa fa-eye fa-lg"></i></span>
<div class="prononciation"><i class="fa fa-comment"></i></div>
<div class="audioclick">
<p><i class="fa fa-volume-off fa-lg"><%= @hiragana.audioclick %></i></p>
</div>
答案 0 :(得分:1)
的Bonjour!
你需要:
<%= hiragana.upletter %>
<%= hiragana.transcription %>
在你的循环中。
-
使用循环时,您需要使用locally scoped variable:
<% @hiraganas.each do |hiragana| %>
<%= hirgana.upletter %>
<% end %>
undefined method "..." for "NilClass"
的任何Ruby错误基本上意味着你试图在非声明的变量上调用方法。
在这种情况下,您尝试使用的变量是@hiragana
,它不存在。它是本地等价物(hirgana
)。