加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 从Rails中的ActiveRecord :: RecordNotFound获

发布时间:2020-12-17 02:42:59 所属栏目:百科 来源:网络整理
导读:我在application_controller.rb中处理RecordNotFound错误,如下所示: rescue_from ActiveRecord::RecordNotFound,:with = :record_not_found private def record_not_found flash[:error] = "Oops,we cannot find this record" redirect_to :back end 但我想
我在application_controller.rb中处理RecordNotFound错误,如下所示:

rescue_from ActiveRecord::RecordNotFound,:with => :record_not_found

  private 

   def record_not_found
     flash[:error] = "Oops,we cannot find this record"
     redirect_to :back
   end

但我想获得更多信息,例如找不到哪条记录的类/表名.
我该怎么办呢?

谢谢.

解决方法

比如说,

begin
@user = User.find(params[:id])
rescue ActiveRecord::RecordNotFound
  flash[:notice] = "#No such record in User for id :: {params[:id]} on #{action_name}"
end

UPDATE

flash[:notice] = t('flash.recordnotfound',:class_name => self.class.name,:column_name => params[:id],:action_name => action_name)

现在在你的config / locales / en.yml中(这有助于翻译,请参阅i18n here)

flash:
  recordnotfound:  "Sorry,no record od %{column_name} in class %{class_name} was found on you action %{action_name}"

如果您不想使用区域设置,只需将此信息放在flash [:notice]中.

更有活力?

写一个函数并在那里使用相同的flash [:notice].不要伤害.

想要更多数据?

这是一个快速的解决方案,我总是<%= params%>在我的观点中,我们很容易知道最新情况以及最新消息.然后,您可以打开rails控制台并播放不同的操作等.

user = User.new
user.save
user.errors.messages

我认为所有这些都是足够好的数据.

祝好运.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读