Ruby on rails 如何检索模型';s记录属性,包括作为散列的\u多个ID?
假设我有以下类别:Ruby on rails 如何检索模型';s记录属性,包括作为散列的\u多个ID?,ruby-on-rails,ruby,ruby-on-rails-4,rspec,ruby-on-rails-5,Ruby On Rails,Ruby,Ruby On Rails 4,Rspec,Ruby On Rails 5,假设我有以下类别: class User < ActiveRecord::Base has_many :addresses end 我正在寻找一种在任何给定记录上执行此操作的通用方法(即,不涉及反映关联以提取属性并最终污染模型本身,毕竟我正在寻找一种纯粹为了测试目的而执行此操作的方法),或者至少在测试代码中隔离一个方法 不确定是否有Rails方法,但您可以自己定义 def attributes_with_has_many_associations attributes.merge
class User < ActiveRecord::Base
has_many :addresses
end
我正在寻找一种在任何给定记录上执行此操作的通用方法(即,不涉及反映关联以提取属性并最终污染模型本身,毕竟我正在寻找一种纯粹为了测试目的而执行此操作的方法),或者至少在测试代码中隔离一个方法 不确定是否有Rails方法,但您可以自己定义
def attributes_with_has_many_associations
attributes.merge(
self
.class
.reflect_on_all_associations(:has_many)
.map(&:plural_name)
.map { |as| { as.to_sym => self.send(as) } }
.reduce(&:merge)
)
end
User.address\u id不应该准确地告诉您吗?如果您已经将ID保存为一个数组,您可以像那样检索相同的ID,不是吗?没有内置的方法来执行此操作。只需手动添加所需的关联,即
user.attributes.tap{a | a[:address_ids]=a.address_ids}
def attributes_with_has_many_associations
attributes.merge(
self
.class
.reflect_on_all_associations(:has_many)
.map(&:plural_name)
.map { |as| { as.to_sym => self.send(as) } }
.reduce(&:merge)
)
end