我试图before_save在rails模型中的方法中添加异常,但在视图中,不存在任何错误消息.
模型:
before_save do
doing_some_stuff
begin
File.open('some_file', 'w+') do |file|
if file.write(file_content)
return true
else
return false
end
end
rescue => e
self.errors.add(:base, e.message)
return false
end
Run Code Online (Sandbox Code Playgroud)
视图:
<%= @model.errors.any? %>
Run Code Online (Sandbox Code Playgroud)
这总是错误的.
如何向模型添加错误消息?
编辑:
问题是,我在update_attribute函数之后进行了重定向,而不是再次呈现操作.谢谢你的帮助.
Chr*_*ald 25
您应该在验证时执行此操作,而不是before_save.到达before_save回调时,记录被认为是有效的.
validate do
doing_some_stuff
begin
File.open(some_file, 'w+') do |file|
if !file.write(file_content)
self.errors.add(:base, "Unable to write #{some_file}")
end
end
rescue => e
self.errors.add(:base, e.message)
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27236 次 |
| 最近记录: |