ruby - 如何将这个循环减少到单行代码?

标签 ruby

我需要将下面的代码写在一行中。它在我看来很难看:

@photos = []
@vehicle.photos.each { |p| @photos << view_context.present(p) }

我该怎么办?

最佳答案

迭代可枚举对象的模式(@vehicle),对每个元素应用一个函数(view_context.present(p)),并将结果附加到新创建的数组 (@photos) 封装在 map 中方法:

@photos = @vehicle.photos.map { |p| view_context.present(p) }

关于ruby - 如何将这个循环减少到单行代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23129108/

相关文章:

ruby - MSSQL-Server/ruby-gem 续集 : How to read UTF-8 values?

ruby-on-rails - Ruby on Rails - 通过连接在 has_many 中使用了错误的外键

mysql - 使用 ruby​​ on Rails 中的联接获取列表中唯一的项目

ruby - 如何将 octopress 3 部署到现有 gh-pages 站点中的子目录?

ruby-on-rails - #<Class :XYZ> (NoMethodError) [rspec] 的未定义方法 'visit'

ruby-on-rails - 将 Hash 更改为 ruby​​ 中的数组数组

ruby - 按方法的结果对哈希进行排序,将 nil 结果排序到底部

ruby-on-rails - 在 ruby​​ 假时间中四舍五入到最接近的半小时或小时?

ruby-on-rails - 我们如何在记录器生成的输出日志文件中设置字体和颜色?

ruby-on-rails - 用户回形针重命名上传的文件