我在部分行#1中遇到错误:undefined local variable or method 'level'
我认为的代码:
<div id="comments">
<% level = 0%>
<% @comments.each do |comment| %>
<%=render partial: 'comments/single_comment', locals: {level: level, comment: comment} %>
<% end %>
<% if 0 < level %>
<% (level).times do %>
</div>
<% end %>
<% end %>
</div>
</div>
部分第一行:
<% if comment.level < level %>
<% (level - comment.level).times do %>
</div>
<% end %>
<% end %>
知道这里有什么问题吗?
答案 0 :(得分:2)
看起来这段代码应该可行(它不是很好,但应该可以工作) 我认为你在部分代码中使用你的部分(评论/单一评论)的问题,如果没有“本地级别”,我们没有看到:)
答案 1 :(得分:1)
似乎代码是正确的..尝试检查你是否有任何使用single_comment文件名的部分视图...而且你也可以使用集合而不是做一个循环
<%= render partial: 'comments/single_comment', collections: @comments, locals: { level: level } %>
答案 2 :(得分:0)
您正以错误的方式将参数传递给partial。将其更新为以下内容。
<%=render partial: 'comments/single_comment', locals: => {:level => level, :comment => comment} %>
现在您可以按部分访问部分中的对象
<% if locals[:level] < level %>
<% (level - locals[:level]).times do %>
</div>
<% end %>
<% end %>