浏览 766 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2008-05-09
就是在action中,当传入的ID通过 model.find(params[:id])没找到时,比如用户手动输入的id。就会出现难看的ActiveRecord::RecordNotFound页面。
我现在的做法是在ApplicationController加了
around_filter :rescue_record_not_found
def rescue_record_not_found
begin
yield
rescue ActiveRecord::RecordNotFound
render :file => "#{RAILS_ROOT}/public/404.html"
end
end
一般来说应该怎么处理这个问题? 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2008-07-24
|
|
| 返回顶楼 | |
|
最后更新时间:2008-05-10
改成
rescue_from ActiveRecord::RecordNotFound :with => :rescue_record_not_found
def rescue_record_not_found
render :file => "#{RAILS_ROOT}/public/404.html"
end
很好用。谢谢~~ |
|
| 返回顶楼 | |
|
最后更新时间:2008-05-16
如果有新的异常,可以在用rescue_from ActiveRecord::RecordNotFound :with => :rescue_record_not_found 不会覆盖把?
可以继续添加吗? 例如: rescue_from Mysql::Error :with => :rescue_mysql_error def rescue_mysql_error render :file => "#{RAILS_ROOT}/public/404.html" end 这样可以吗?如果数据库突然关闭,或者连接不上,该怎么捕获此类异常 |
|
| 返回顶楼 | |
|
最后更新时间:2008-07-23
我也这样加入,可是说undefined method `RecordNotFound' for ActiveRecord:Module
要先导入吗? |
|
| 返回顶楼 | |
|
最后更新时间:2008-07-24
feiyelanghai 写道 我也这样加入,可是说undefined method `RecordNotFound' for ActiveRecord:Module
要先导入吗? rescue_from ActiveRecord::RecordNotFound, :with => :rescue_record_not_found,中间应该有个逗号,如果没有就会出现你说的那个错误。 |
|
| 返回顶楼 | |
|
最后更新时间:2008-07-27
Jan 写道 http://api.rubyonrails.org/classes/ActionController/Rescue/ClassMethods.html#M000226
rescue_from 'MyAppError::Base' do |exception| render :xml => exception, :status => 500 end 不错不错 这种小的甜点,层出不穷呀! |
|
| 返回顶楼 | |
|
最后更新时间:2008-07-27
附:production mode下默认是会自动跳至404页面的。
|
|
| 返回顶楼 | |










