如何在ROR3中指定要在update_attributes中使用的属性?

时间:2013-07-16 13:15:47

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

我想要实现的是只更新我的Order模型中的可访问属性,传递一个current_user对象,如下所示:

  order.update_attributes(current_user.attributes.ONLY(:name, :surname, :email))

那么可以在没有明确设置要更新的列的情况下实现这一点吗?

2 个答案:

答案 0 :(得分:2)

使用Rails中的Hash#slice

current_user.attributes.slice(:name, :surname, :email)

答案 1 :(得分:0)

您可以使用Hash#select,如下例所示:

current_user.attributes.select{|key, _| [:name, surname, email].include?(key)}