タグ

ブックマーク / lunatear.net (1)

  • LunaTear: RailsでReadonlyなmodel

    Railsで更新は別のアプリが担当しているなどの理由で、読み取り専用でテーブルにアクセスしたい時がありますが、残念ながらRails自体には読み取り専用のモデルを作成する手段は無いようです。 と言うわけで、代替手段を探していたのですが、どうもスマートな手段が無く結局、readonly?メソッドを上書きして常にtrueを返すようにして、凌ぐようにしました。 ただ、それだけだと削除などが有効なため、結局以下のように一部メソッドでは直接ActiveRecord::ReadOnlyRecordをraiseしています。 以下、サンプルコードです class Hoge < ActiveRecord::Base # 全レコードをReadOnlyということにしてCreate、Update系を阻害 def readonly? return true end # テーブル自体の破壊を例外を返して阻止 def b

    mingos
    mingos 2010/07/22
    検索専用のモデルにする場合とかに使えそう。同じDBを異なるRailsプロジェクトで共有する場合とか。
  • 1