Grundsätzlich ich jede Tabellenspalte für ein Modell in Rails 5.aktualisieren Jedes Array-Objektwert in Rails
str = "abc---def"
str.split('---').map do |a|
Foo.where(product_id:1).update_all(bar: a)
end
Alte Objekt wie wäre aktualisieren möchten:
[
[0] { product_id: 1,
...,
bar: "xxx",
...
},
[1] { product_id: 1,
...,
bar: "xxx",
...
}
]
New sollte wie sein:
[
[0] { product_id: 1,
...,
bar: "abc",
...
},
[1] { product_id: 1,
...,
bar: "def",
...
}
]
Aber was ich habe, ist bar: "def"
für jeden. Gibt es eine saubere Methode in Schienen, um zu erreichen, was ich will? update_attributes
gibt einen Fehler.
Ist der Titelname korrekt?
Zunächst ist Ihre Frage nicht so erklärend. Wie können Sie bei der Abfrage von ID (Primärschlüssel) mehrere Datensätze zurückgeben? –
Lassen Sie mich Ihnen sagen, was ich von Ihrer Frage verstanden habe. Sie sagen also, Sie haben ein Array von Werten (nach String-Splitting) Und Sie haben mehrere Model-Objekte (nach der Abfrage) und Sie möchten, dass jeder Wert für das Modell in der gleichen Reihenfolge gesetzt werden, richtig? –
@QaisarNadeem Danke dafür. Beitrag aktualisiert. – Sylar