代码如下:
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
有人对此有想法吗?
代码如下:
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
有人对此有想法吗?
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!(而不是@seat.save)才能获得异常。 @seat.save只会返回 true 或 false ...但这通常是您想要的,因此请考虑您是否真的要引发异常。
只有在实现自定义验证器时才需要记录参数,否则该方法已经知道它正在验证哪个记录(自身)。