2011-07-17 151 views
2

在我的一个模型中,我有一个before_create属性,用于设置从Web API中获取的特定值。但是,如果在使用API​​时未找到结果,则此before_create返回false,从而导致模型创建失败。before_create失败时显示警告消息?

这工作正常,但我想也显示一条警告消息,以便用户知道他们的输入未被接受。我会如何去做这件事?

+0

请发布您的'before_create'和其他相关代码。 – s84

回答

4

A 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?只会在创建新模型时运行。

+1

我在哪里可以找到这个用于煎饼的API? – Thilo

+0

@Thilo:[Fargo(NSFW)](http://www.youtube.com/watch?v=dJUvPZI3Cr4)。 –

+0

我相信验证在'before_create'之前运行。 – madh

相关问题