データベースで 1 行のみを許可する方法はありますか (サイト全体の設定など)。
質問する
3225 次
3 に答える
8
class Whatever < ActiveRecord::Base
validate :there_can_only_be_one
private
def there_can_only_be_one
errors.add_to_base('There can only be one') if Whatever.count > 0
end
end
于 2013-01-18T16:36:17.447 に答える
5
Rails 4 では:
class Anything < ActiveRecord::Base
before_create :only_one_row
private
def only_one_row
false if Anything.count > 0
end
end
サイレントエラーは悪いことです。
class Anything < ActiveRecord::Base
before_create :only_one_row
private
def only_one_row
raise "You can create only one row of this table" if Anything.count > 0
end
end
于 2015-10-06T14:26:00.833 に答える
2
この行には 1 つの列しかありませんか? そうでない場合、移行で新しい列を追加するのはやり過ぎかもしれません。少なくとも、このテーブルに「名前」列と「値」列を含めて、名前の一意性によって検証することができます。
于 2013-01-18T21:00:20.450 に答える