Help us understand the problem. What is going on with this article?

ActiveRecord はそのインスタンスを create したのか update したのか

More than 1 year has passed since last update.

ある record を save したときに、 create のときだけ次に何かを処理したい(しかも、コールバック以外で)ということがありました。

とりあえず思いついた方法は

> record.id_previously_changed?
=> true

Rails のコードを読むと

    def create_or_update(*args, &block)
      _raise_readonly_record_error if readonly?
      return false if destroyed?
      result = new_record? ? _create_record(&block) : _update_record(*args, &block)
      result != false
    end    

https://github.com/rails/rails/blob/78d47aa4bf0bf33a216cc7d9f1c6eeb182f178f4/activerecord/lib/active_record/persistence.rb#L701-L706

ということなので、 create / update を分離しているだけで、それぞれの中を読んでも、特に区別するためのデータはなさそう。

negito6
今はこの会社で、水産養殖 IoT の仕事してます。 https://umitron.com/ja/ 編集リクエスト、コメント大歓迎です。よろしくお願いします
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away