ruby-on-rails - ruby 语法 : How to write "a = h[:v] if !h[:v].nil?"

标签 ruby-on-rails ruby

我发现自己经常写这样的语句:

deleted_at = Time.at(data[:deleted_at]) if !data[:deleted_at].nil?

我希望能够以更简洁的方式编写此内容。有什么建议吗?

有时我会这样写:

deleted_at = Time.at(i) if !(i = data[:deleted_at]).nil?

但我认为这会使代码更难阅读,所以我希望有更好的方法来做到这一点。

最佳答案

我使用 'unless' 因为我觉得它更具可读性:

deleted_at = Time.at(data[:deleted_at]) unless data[:deleted_at].nil?

或者你甚至可以使用:

deleted_at = Time.at(data[:deleted_at]) if data[:deleted_at]

关于ruby-on-rails - ruby 语法 : How to write "a = h[:v] if !h[:v].nil?",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3734888/

相关文章:

ruby-on-rails - Rails + 设计 : Wrong Sign out message

javascript - CORS 问题 : Getting error "No ' Access-Control-Allow-Origin' header is present"when it actually is

ruby-on-rails - Rails 和 Paperclip Errno::EACCES 权限被拒绝

mysql - 无法在 Rails 上运行数据库迁移

ruby - 如何将哈希连接到 URL 参数?

ruby-on-rails - Rails facebook 应用程序返回 422 "the change u wanted was rejected"错误

ruby-on-rails - Rails 5 LEFT OUTER JOIN 包含超出条件的记录

Ruby 在复制文件时显示进度

ruby - module_eval/class_eval/instance_eval 如何统计行号

ruby-on-rails - Rails ActionText 没有为文本输入框和上传的附件呈现样式