acts_as_readonlyable
というプラグインを使うという方法があるようですが、2.3.4では動かない気配です。
こちらを改造して使うには、
http://hisme.net/~masaki/blog/article/show/41
が参考になります。
プラグインを使わない方法として
http://lunatear.net/archives/001089.html
という方法もあります。
2.3.4を使っていてプラグインに手を入れるのがちょっと面倒でさらにいっぱいRead OnlyなModelを使いたいと思ったのでプラグインを使わない方法を参考にさせていただき以下のような感じでやってみました。
app/models/read_only.rb
を以下のような感じで作ります。
class ReadOnly < ActiveRecord::Base
abstract_class = true
def readonly?
true
end
def before_destroy
raise ActiveRecord::ReadOnlyRecord
end
def self.delete(id)
raise ActiveRecord::ReadOnlyRecord
end
def self.delete_all(conditions)
raise ActiveRecord::ReadOnlyRecord
end
def self.destroy_all(conditions)
raise ActiveRecord::ReadOnlyRecord
end
end
そしてRead Onlyにしたいモデルを以下のように書きます。
class Test < ReadOnly end
ReadOnlyクラスに
abstract_class = true
をつけるのがポイントでした。
0 件のコメント:
コメントを投稿