1. ホーム
  2. ruby-on-rails

[解決済み] Rails update_attributes without save?

2022-03-23 03:50:51

質問

に代わるものはありますか? 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行で更新したいのです。

どのように解決するのですか?

あなたが探しているものは、次のものだと思います。 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