Rails update_attributes を保存せずに実行するには? 質問する

Rails update_attributes を保存せずに実行するには? 質問する

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

おすすめ記事