查看: -
<% @dating_advices.each do |da| %>
<% if da['is-displayed'][0]['content'] == 'true' %>
<div class="dating_advice">
<h4><%= da['title'][0] %></h4>
<p><b><%= da['author'][0] %></b></p>
<p><%= da['content'] %></p>
</div>
<hr>
<% end %>
<% end %>
控制器: -
def dating_advices
@current_menu = "MatchMasters"
logger.debug "*** Current site id: #{@current_site.id}"
#@hide_quick_search = true
@passed_args = {
'event_action' => 'ws',
'site_id' => @current_site.site_id
}
result = call_dating_advices_ws(@passed_args)
if result && result['errorcode'][0] == 'success'
@dating_advices = result['payload'][0]['payload']
end
end
现在当我点击我网页上的约会建议时,它会出现错误&#34;获取模板::错误(未定义的方法&#39;每个&#39;)为nil:NIL Class&#34;
答案 0 :(得分:0)
你可能没有得到任何@dating_advices
- 这意味着你在一个不存在的实例var上调用每个。
编写控制器的方式,如果未定义结果变量,则永远不会定义@dating_advices
。
您可以使用@dataing_advices = []
(或散列 - 使用.each方法的任何内容)快速修补它,并找出控制器失败的原因。
您可以执行类似
的操作if result && result['errorcode'][0] == 'success'
... your dating advice code
else
raise result
(or @dating_advice = {})
end
基本上您需要始终定义@dating_advice
或者您需要处理未在视图中定义的值。