

Rails(ActiveRecord)に特定のカラムの内容を削除するメソッドはありますか?  
検索してもカラムそのものを削除する情報ばかりヒットして見つけられませんでした。

ない場合は自分で実装しようと思うのですが、その際の適切なメソッド名が思い浮かびません。

実装するコードとしては以下のような感じを考えています。

[code]

    def メソッド名
      update(:deleted_at => nil)
    end
    
[/code]


CC BY-SA 3.0
2016-10-31T02:00:12.370
30002
2016-11-04T02:08:01.753
9149
question
ruby-on-rails rails-activerecord
railsでカラムのデータを削除するメソッド


新しいメソッドをわざわざ作る必要は感じられません。  
ご自身で書かれている通り、`update`を使えばよいと思います。

`hoge.update(foo: nil)`

ActiveRecordオブジェクトから扱える任意のカラムをnilにできます。  
（もちろんNOT NULL制約などがあればnilにできません）


CC BY-SA 3.0
2016-10-31T03:46:34.490
30004
2016-11-04T01:47:07.273
2016-11-04T01:47:07.273
9008
9008
30002
answer


メソッド名としては`nullify`は如何でしょうか？

[code]

    def nullify(column)
      update(column => nil)
    end
    
[/code]

何かと連動して使うことになりそうですし、`update`ではなく`assign_attributes`を使ったほうがいいかもしれません。


CC BY-SA 3.0
2016-11-04T01:42:29.620
30091
2016-11-04T01:42:29.620
3271
30002
answer


> 適切なメソッド名が思い浮かびません。

業務ロジック又はシステムとして何らかの意味があるはずなので、その意図が伝わる名前にするのがいいと思います。

質問に書かれているコードでは`deleted_at`にnilを設定しているので、これは論理削除したレコードを元に戻すというような意図だと思います。

この場合は復元／復活等の意味のメソッド名がいいのではないでしょうか。

(rubyは命名規則はわからないのであえて具体的なメソッド名は書きませんでした)


CC BY-SA 3.0
2016-11-04T02:08:01.753
30092
2016-11-04T02:08:01.753
18862
30002
answer