我有三个数组,其中两个来自JSON。重构红宝石
我需要检查每个数组是否为零且计数大于0.如果任何大于0的显示“Hello World”,则显示“Boo”。
<% if [email protected]? && @arrayOne.count > 0 || [email protected]_json[:user_stuff].nil? && @user_json[:user_stuff].count > 0 || [email protected]_json[:more_user_stuff].nil? && @user_json[:more_user_stuff].count > 0 %>
<h1>Hello World</h1>
<% else %>
<h1>Boo</h1>
<% end %>
我需要一些帮助重构此代码,并希望学习其他方法来解决这个问题。
如果'@ arrayOne'是'nil',这将抛出'NoMethodError:未定义的方法“空白? “为零:NilClass'。 (@user_json [:user_stuff]','@user_json [:more_user_stuff]') – falsetru
@falsetru你是说如果@arrayOne等是'undefined'? AFAIK'blank?'在测试空之前测试nil,这样'nil.blank?'返回true。 – brito
这是我用'nil.blank获得的东西?'http://i.imgur.com/xUe8bIM.png(Ruby 2.2.2) – falsetru