1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

テーブルに使ってほしくないカラムがある時にプログラム上で対応したこと

Last updated at Posted at 2019-03-21

別チームが管理しているDBを参照することがあったのだが
仕様書には「hogeカラムは使わないでください」と書いてあった

ActiveRecordを利用するので、何か対応をしなければmy_model.hogeで参照できてしまう
この状況でどういう対応をしたのか履歴を残しておく

対応1

nilを返すよう強制した

class MyModel < ApplicationRecord
  def hoge
    nil
  end
end

結果

運用前にレビューで弾かれので対応2へ

対応2

触れない

レビューで「使ってほしくないカラムに対してコードは書かなくて良いのでは」という意見をもらったのでそうしてみた

class MyModel < ApplicationRecord
end

結果

実装して数日経つと、使ってはいけないという仕様を忘れてしまい
見事に使ってしまった
これは良くないということで対応3へ

対応3

例外を投げる

エラーを投げることで使ってはいけないということを開発者に通知するようにした

# 例外クラスを作る
UnavailableAttributeError = Class.new(StandardError)
class MyModel < ApplicationRecord
  def hoge
    raise UnavailableAttributeError
  end
end

結果

今のところ問題無し

さいごに

対応3で運用してみて問題があればまた更新します。
更新が無いということはうまくいっていると思っていただければm(_ _)m

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?