在before_create失败时显示警告消息?

时间:2011-07-17 20:54:12

标签: ruby-on-rails

在我的一个模型中,我有一个before_create属性,用于设置从Web API获取的特定值。但是,如果在使用API​​时未找到任何结果,则此before_create将返回false,从而终止模型创建。

这样可以正常工作,但我还想显示一条警告消息,以便用户知道他们的输入未被接受。我该怎么做呢?

1 个答案:

答案 0 :(得分:4)

before_create不是报告错误的正确位置。您的before_create应该尝试设置该值,然后验证器应该检查它是否存在,如果验证器没有找到该值,那么您将收到错误消息等。因此,如果您的属性被称为pancakes,那么您将拥有以下内容:

before_validation :stuff_web_api_value_into_pancakes, :if => :new_record?
validates_presence_of :pancakes

当然,您可以使用与validates_presence_of不同的验证器,这仅用于说明目的。并且你需要before_validation hook以正确的顺序让事情发生,:if => :new_record?只会在你创建新模型时运行。