Model(Active Record)を読み込み専用にする


Ruby on Railsで読み込み専用のRead Onlyのモデルを作る際の実装手順です。

🐠 ReadOnly属性のConcern

まずは読み込み専用を保証するReadOnlyableを構築します。

module Readonlyable
extend ActiveSupport::Concern

module ClassMethods
def delete(_id)
raise ActiveRecord::ReadOnlyRecord
end

def delete_all(_conditions)
raise ActiveRecord::ReadOnlyRecord
end
end

def readonly?
return true
end

def before_destroy
raise ActiveRecord::ReadOnlyRecord
end
end

あとは読み込み専用にしたいモデルでincludeをすればよいです。

🍄 参考リンク

😆 プログラミングのスキルアップをサポートします!

プログラミングを習得したり、レベルアップしたい、デザイナさん、マーケッターさん、ディレクタさん、ライターさんを募集しています。 Ruby on Railsや React/Vue.js などフロントエンドなどご要望に応じてサポートします。 また、技術顧問的にコードレビューをしたり、開発で困ったことなどの質問に答える事もできます。 代わりに、個人で開発中の月間20万PVのサービスのグロースを手伝ってもらえると嬉しいです!

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍