1

コードは次のとおりです。

class Seat < ActiveRecord::Base
  attr_accessible :baggage, :flight_id, :name
  def validate(record)
    errors.add_to_base("You have too much baggage")
  end
end

新しいレコードがデータベースに書き込まれるたびにエラーがスローされると予想していました。

seatsただし、新しいレコードがデータベースに書き込まれたときは何も起こりませんでした@seat.save

誰かがこれについてアイデアを持っていますか?

4

2 に答える 2

5

validate(record)奇妙に見えます。試してみてください

class Seat < ActiveRecord::Base
  attr_accessible :baggage, :flight_id, :name
  validate :valid_baggage

  def valid_baggage
    errors.add_to_base("You have too much baggage")
  end
end

また、例外を取得するには、 @seat.save!(の代わりに)を呼び出す必要があることに注意してください。trueまたはfalseのみを返します...しかし、それは通常あなたが望むものなので、本当に例外を発生させたいかどうかを検討してください。@seat.save@seat.save

于 2012-11-30T13:19:54.183 に答える
0

レコード パラメータは、カスタム バリデータを実装している場合にのみ必要です。それ以外の場合、メソッドは検証対象のレコード (自己) をすでに認識しています。

于 2012-11-30T13:18:21.653 に答える