ruby-on-rails-3 - 铁路 : if statement in . map ()

标签 ruby-on-rails-3

我想将表中的一些值映射到数组。工作正常,除了数据库中有一些 nil 值,这会创建无效的 JSON。到目前为止我有这个:

@markers = ExtendedProfile.all.map{|u|[u.city, u.latitude, u.longitude]}

现在我想做的是检查字段是否已填写,如果没有,请输入默认值。例如,if u.latitude == nil 我想在数组中输入0.0,而不是nil。知道如何实现这一点吗?

最佳答案

为了更好地理解,您可以扩展到 map block 语法,如下所示:

@markers = ExtendedProfile.all.map do |u|
  if u.latitude.nil?
    [0, 0]
  else
    [u.city, u.latitude, u.longitude]
  end
end

关于ruby-on-rails-3 - 铁路 : if statement in . map (),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23739278/

相关文章:

ruby-on-rails-3 - ActiveRecord::Base#create - 类型错误:无法将符号转换为整数

ruby-on-rails - Rails 3 如何允许在没有_attributes 指定的情况下传递嵌套属性

ruby-on-rails - 在带有格式 block 的 Controller 中仅响应 HTML 的 rails 方式是什么?

mysql - 在 Rails 中将 3 个模型连接在一起以在迭代一个模型的 View 中显示

ruby - 显示具有特定大小写的实例变量

jquery - 客户端验证返回 "Uncaught TypeError: Cannot read property ' presence' of undefined"

ruby-on-rails - 更改默认的多态类型列名

ruby-on-rails-3 - 使用 https 的 aws 上的 Rails 应用程序

ruby-on-rails - Rails 中模型属性的默认值

ruby-on-rails - 回形针图像尺寸自定义验证器