如何将项目附加到数组

时间:2017-08-15 14:34:16

标签: ruby-on-rails ruby

我有以下内容:

myObject = {
  id: user.id,
  email: user.email,
}

我需要像这样添加值:

if current_user && current_user.id == user.id
  myObject << {
    notification_email: user.notification_email,
    notification_email2: user.notification_email2
  }
end

上面的代码会引发错误。

可选择将值附加到对象的正确方法是什么?

错误

未定义的方法`&lt;&lt;&lt;为#你的意思? &LT;

2 个答案:

答案 0 :(得分:7)

也许你想要Hash#merge

myObject.merge(
  notification_email: user.notification_email,
  notification_email2: user.notification_email2
)

如果您想要副作用,请使用撞击版本。

myObject.merge!(
  notification_email: user.notification_email,
  notification_email2: user.notification_email2
)

答案 1 :(得分:4)

myObject哈希,因此要添加新项目,您可以执行以下操作:

if current_user && current_user.id == user.id
  myObject[:notification_email] = user.notification_email
  myObject[:notification_email2] = user.notification_email2
end