有没有办法在不保存的情况下批量分配现有记录?

big*_*ato 2 ruby-on-rails ruby-on-rails-4 rails-activerecord

我有一个ProductsColor模特.给定一个params哈希,有没有办法用一种方法设置现有记录的属性而不保存它?类似于如何ProductsColor.new(params)实例化对象并将其属性设置为params散列中的属性,我想设置现有记录的属性而不保存它,如下所示:

    params = {name: "hey"}

    p = ProductsColor.find(1)
    p.something(params) # does not save to the database, but does set the value of the params to p in memory
    p.name # "hey"
    p.save # <-- now it saves permanently
Run Code Online (Sandbox Code Playgroud)

Die*_*ego 5

你可以这样做:

p = ProductsColor.find(1)
p.assign_attributes(params)
Run Code Online (Sandbox Code Playgroud)

它不会被保存