代码如下:
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
数据库时,没有任何反应
有没有人有这方面的想法?
答案 0 :(得分: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!
(而不是@seat.save
)才能获得异常。 @seat.save
只会返回true或false ......但这通常是你想要的,所以请考虑你是否真的要提出异常。
答案 1 :(得分:0)
只有在实现custom validator时才需要记录参数,否则该方法已经知道它正在验证哪条记录(自己)。