我有三个数组,其中两个来自 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 %>
<h1>Hello World</h1>
<% else %>
<h1>Boo</h1>
<% end %>
我需要一些帮助来重构这段代码,并且想学习其他方法来解决这个问题。
最佳答案
您可以使用 array.blank?
(当然假设您使用的是 Rails)来检查数组是否为 nil 或为空,例如:
<% if !@arrayOne.blank? || !@user_json[:user_stuff].blank? || !@user_json[:more_user_stuff].blank? %>
根据经验,您应该将尽可能多的逻辑移至 Controller 。
正如评论中所建议的,您还可以使用present?
,它与!blank?
相同,可读性提高一点:
<% if @arrayOne.present? || @user_json[:user_stuff].present? || @user_json[:more_user_stuff].present? %>
关于ruby-on-rails - 重构 ruby ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34315892/