我有三个数组,其中两个来自JSON.
我需要检查每个数组是否为nil且计数大于0.如果任何大于0,则显示"Hello World",否则显示"Boo".
<% if !@arrayOne.nil? && @arrayOne.count > 0 || !@user_json[:user_stuff].nil? && @user_json[:user_stuff].count > 0 || !@user_json[:more_user_stuff].nil? && @user_json[:more_user_stuff].count > 0 %>Hello World
<% else %>Boo
<% end %>
我需要一些帮助重构此代码,并希望了解其他方法来解决这个问题.
您可以使用array.blank?
(假设您当然使用Rails)来检查数组是否为空或者为空,例如:
<% if !@arrayOne.blank? || !@user_json[:user_stuff].blank? || !@user_json[:more_user_stuff].blank? %>
经验法则,您应尽可能多地将逻辑移动到控制器.
正如评论中所建议的那样,您也可以使用present?
与!blank?
提高可读性相同的内容:
<% if @arrayOne.present? || @user_json[:user_stuff].present? || @user_json[:more_user_stuff].present? %>