update_attributes
記録を保存しない代替手段はありますか?
つまり、次のようなことができます:
@car = Car.new(:make => 'GMC')
#other processing
@car.update_attributes(:model => 'Sierra', :year => "2012", :looks => "Super Sexy, wanna make love to it")
#other processing
@car.save
ところで、それができることはわかっています@car.model = 'Sierra'
が、すべてを 1 行で更新したいのです。
ベストアンサー1
あなたが探しているのはassign_attributes
。
基本的には update_attributes と同じですが、レコードは保存されません。
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