ruby-on-rails - 重构 ruby

标签 ruby-on-rails arrays ruby refactoring

我有三个数组,其中两个来自 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/

相关文章:

arrays - 如何将可选整数数组加入字符串?

ruby - 如何 to_enum( :method) receive its block here?

ruby-on-rails - 更新计划作业的参数

javascript - Spine.js 中的 Controller 间通信

javascript - 运行初始数组后,Jquery 数组返回未定义

javascript - 用另一个数组中的值构建一个数组

ruby - 从 Ruby 内部生成/修改 Ruby 源文件

ruby - Nokogiri 示例不显示数组 (Ruby)

ruby-on-rails - Ruby on Rails 和 Postgresql - 服务器正在运行,但我收到无法连接到服务器错误

sql - Rails、ActiveRecord、嵌套模型上具有多个联接的复杂查询