LoginSignup
3
1

More than 3 years have passed since last update.

update_attributesでエラーになった時の対処方

Posted at

環境

  • Rails6.1
contoller.rb
def update
  user = User.find(params[:id])
  user.update_attributes
end

UPDATE文が出ずにエラーなりました。

ターミナル
NoMethodError (undefined method `update_attributes' for #<Reaction:0x00007fd4e260db78>
Did you mean?  update_attribute):

エラーで動かなかったの調べてみると
update_attributesが非推奨になったみたいで思わぬ挙動をしてました。
結論から言いますとupdateに変更したら問題なく動きました。

contoller.rb
def update
  user = User.find(params[:id])
  user.update_attributes #非推奨になりました。
end

def update
  user = User.find(params[:id])
  user.update #上記と同じ実装方法になります。
end

rails 6.0まではupdate_attributes使えるらしいですが
rails 6.1で使えなくなってるので色々調べて見ました。

参考

非推奨のActiveRecord::Base#update_attributesおよびActiveRecord::Base#update_attributes!を削除
Railsガイドより

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1