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をすればよいです。

🐮 参考リンク

🖥 VULTRおすすめ

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

📚 おすすめの書籍