Rails update_attributes without save?

后端 未结 4 792
别跟我提以往
别跟我提以往 2020-11-30 16:52

Is there an alternative to update_attributes that does not save the record?

So I could do something like:

@car = Car.new(:make => \'GMC\')
#other          


        
4条回答
  •  余生分开走
    2020-11-30 17:28

    I believe what you are looking for is assign_attributes.

    It's basically the same as update_attributes but it doesn't save the record:

    class User < ActiveRecord::Base
      attr_accessible :name
      attr_accessible :name, :is_admin, :as => :admin
    end
    
    user = User.new
    user.assign_attributes({ :name => 'Josh', :is_admin => true }) # Raises an ActiveModel::MassAssignmentSecurity::Error
    user.assign_attributes({ :name => 'Bob'})
    user.name        # => "Bob"
    user.is_admin?   # => false
    user.new_record? # => true
    

提交回复
热议问题