是否可以在ROR3中仅将未受保护的属性从一个模型复制到另一个模型?

时间:2013-07-20 12:19:41

标签: ruby-on-rails ruby ruby-on-rails-3

我需要将属性从一个模型复制到另一个模型。所以我明确地将它们设置为:

 user = current_user.attributes.slice("id", "name", "surname")
 user["user_id"] = user.delete("id")
 order.assign_attributes(user)

虽然我想做以下事情:

 order.attributes = user.attributes

但是用户对象还有很多其他属性可以防止质量分配。 那么有可能以某种方式只分配可访问的属性吗?

1 个答案:

答案 0 :(得分:1)

没有测试,但我认为它应该有效

attrs = Order.accessible_attributes.each_with_object({}) do |name, attrs|
  attrs[name] = user.read_attribute(name) if name.present?
end

attrs[:user_id] = attr.delete(:id)