0
假設我有下面的類:如何檢索模型的記錄屬性,包括has_many ID作爲散列?
class User < ActiveRecord::Base
has_many :addresses
end
而且我初始化以下記錄:
user = User.new(first_name: "John", last_name: "Doe", address_ids: [1, 2, 3])
已經存在的Rails的提供了一個方便的方法來檢索模型記錄的屬性:
user.attributes # => {first_name: "John", last_name: "Doe"}
不過,我也需要得到包含address_ids
以及哈希,那就是:
user.attributes_with_has_many_associations
# => {first_name: "John", last_name: "Doe", address_ids: [1, 2, 3]}
我在尋找一個一般在任何給定的記錄(例如,不涉及反映協會拉動屬性,並最終導致污染模型本身,畢竟我正在尋找一種純粹用於測試目的的方法),或者至少在測試代碼中分離出一種方法。
不應該User.address_ids給你完全呢?如果你已經把ID保存爲一個數組,你可以像這樣檢索,不是嗎? –
有沒有這樣做的內置方式。只需手動添加你的關聯,即'user.attributes.tap {| a | a [:address_ids] = a.address_ids}' – meagar