Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在rails中使用远程表单时处理mysql错误

在rails中使用远程表单时处理mysql错误
EN

Stack Overflow用户
提问于 2014-06-18 04:36:41
回答 1查看 314关注 0票数 0

我有一个表单使用:remote => true

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<%= form_for @expression, url: {controller: "expressions", action: "create"}, :remote => true  do |f| %>

...

<% end %>

在我的控制器代码中,我绑定以显示一条警告消息,以指示表单数据是否已保存。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def create
    @expression = Expression.new(params[:expression])

    respond_to do |format|
      if @expression.save     
        format.js { render :js => "alert('Expression details have been saved'); window.opener.document.location.reload(true); window.close();" }
      else
        format.js { render :js => "alert('Error. Please ensure that expression patterns are unique');" }
      end

    end

  end

如果表单数据已成功保存在数据库中,则将正确显示警报消息。但是,如果由于某种原因(数据库约束-- Mysql2 2::Error: reason )无法保存数据,则不会发生任何事情。未显示警报消息。

在使用远程表单时,有处理mysql错误的方法吗?

非常感谢你的帮助。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-18 04:47:57

Mysql2::Error: Duplicate是一个异常,而不是ActiveRecord验证错误。您可以通过捕获异常来处理它,即:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def create
  @expression = Expression.new(params[:expression])

  respond_to do |format|
    if @expression.save     
      format.js { render :js => "alert('Expression details have been saved'); window.opener.document.location.reload(true); window.close();" }
    else
      format.js { render :js => "alert('Error. Please ensure that expression patterns are unique');" }
    end
  end

rescue ActiveRecord::RecordNotUnique
  respond_to do |format|
    format.js { render :js => "alert('Error..');" }
  end
end

我的示例只捕捉到那个特定的异常,但是您可以用rescue Exception捕获任何异常。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24285794

复制
相关文章
使用rvm在Mac中安装ruby和rails
MacOS默认安装的是ruby 1.8.7,如果你想使用ruby 1.9.2的话,除了在官网下载源码编译安装外,可以使用rvm来协助安装。
EltonZheng
2021/01/22
3.2K0
MySQL在删除表时I/O错误原因分析
问题现象 最近使用sysbench测试MySQL,由于测试时间较长,写了一个脚本按prepare->run->cleanup的顺序在后台跑着。跑完后察看日志发现一个问题,MySQL服务的错误日志中出现多条类似以下信息的报错: [ERROR] InnoDB: Trying to do I/O to a tablespace which does not exist. I/O type: read, page: [page id: space=32, page number=57890], I/O length
腾讯数据库技术
2018/07/19
1.9K0
在使用Vue2.0中使用axios库时,遇到415错误
解决办法:在axios的第三个参数config中,设置请求头信息'Content-Type': 'application/json;charset=UTF-8'
Arebirth
2020/06/19
3.4K0
在Django 2.2中启动开发服务器时处理SQLite3错误
当python3 manage.py runserver启动django项目的时候,就会出现报错信息如下: django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).
Devops海洋的渔夫
2019/05/30
4.2K0
使用java(jdbc)向mysql中添加数据时出现“unknown column……”错误
这里的date变量其实我是用SimpleDate类设置的是一个字符串类型的数据了,根据上面的叙述,得知这个“+date+”还是需要使用单引号引起来的,如下:
roobtyan
2019/02/21
5.2K0
mysql远程连接错误。1044 解决
mysql> GRANT ALL PRIVILEGES ON *.* TO root@’ip’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;
kirin
2020/09/07
4.6K0
RxJS 在 Angular响应式表单中的使用
FormControl 的 valueChanges 属性和 statusChanges 属性包含了会发出变更事件的可观察对象。 例子
mafeifan
2019/03/04
5.1K0
3. 在Django 2.2中启动开发服务器时处理SQLite3错误
当python3 manage.py runserver启动django项目的时候,就会出现报错信息如下:django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).
Devops海洋的渔夫
2022/01/17
1.4K0
Django提交表单时遇到403错误:CSRF verification failed
django 提交表单 提示403:CSRF verification failed 后台日志: UserWarning: A {% csrf_token %} was used in a template, but the context did not provide the value. This is usually caused by not using RequestContext. "A {% csrf_token %} was used in a template, but the
程序员同行者
2018/07/02
1.9K0
mysql 1146 错误处理
问题出现是因为 之前 把 mysql/data/ ibdata1 , ib_logfile0, ib_logfile1, ib_logfile2 文件 删除了,mysql重启之后会自动生成 这些文件的。但是之前的innodb引擎,就不能再 访问了。
全栈程序员站长
2022/07/01
2.7K0
MYSQL 8 和 POLARDB 在处理order by 时的缺陷问题
先说说这个问题,这个问题在POLARDB 和 MYSQL 都存在,所以这不是POLARDB 代码的问题,这是存在于 MYSQL 8 的问题, 而由于POLARDB 使用了 MYSQL 的语句处理和解析等部分,导致的跟随性问题。
AustinDatabases
2022/12/13
1.3K0
MYSQL  8 和 POLARDB  在处理order by 时的缺陷问题
Mysql 远程连接权限错误1045问题
#今天新安装mysql以后,由于没有勾选Enable root access from remote machines 而再连接数据库时出现了以下问题
全栈程序员站长
2022/07/25
2K0
Mysql 远程连接权限错误1045问题
IDEA远程提交hadoop任务时出现的错误
上述问题解决:开启historyserver服务 mr-jobhistory-daemon.sh start historyserver
ZONGLYN
2019/08/08
2.3K0
MySQL 远程连接及错误的解决
mysql -uroot -p grant all on *.* to baimoc@'%' identified by '123456' with grant option; flush privileges;
白墨石
2021/01/13
1.2K0
在 MySQL 中处理日期和时间(三)
在本系列关于日期和时间的前两部分中,我们介绍了 MySQL 的五种时态数据类型。现在是时候将注意力转移到 MySQL 的许多面向日期或时间的函数了。
MySQL技术
2022/06/08
3.8K0
在 MySQL 中处理日期和时间(三)
在 MySQL 中处理日期和时间(四)
在这个关于日期和时间的系列中,我们探索了 MySQL 的五种时态数据类型,以及它的许多面向日期或时间的函数中的一些。在本文中,我们将介绍在 MySQL 中创建日期和时间的几种方法。
MySQL技术
2022/06/08
3.9K0
在 MySQL 中处理日期和时间(四)
在 MySQL 中处理日期和时间(二)
欢迎回到这个关于在 MySQL 中处理日期和时间的系列。在前面章节中,我们探讨 MySQL 的时态数据类型。第一部分介绍了 DATE、TIME 和 DATETIME 数据类型,而本部分将介绍余下的 TIMESTAMP 和 YEAR 类型。
MySQL技术
2022/06/08
3.4K0
在 MySQL 中处理日期和时间(二)
在MySQL中处理组织层次(中文路径)
假设有这样的组织层次,“某某局”,“某某局>某某部”,“某某局>某某部>某某下属组织”, “某某局”是一级组织所以他的组织层次就是他自己的组织名字,而类似“某某部”这样的二级组织,他们的组织层次就是“某某局>某某部”,中间用“>”(大于号)分隔,从一级组织一直到他自己的组织名字连接起来。
用户3579639
2018/10/19
1.2K0
在Debian 9上使用Apache安装Ruby on Rails
Ruby on Rails是一个服务器端Web应用程序框架。它维护了一组策划组件和“约定优于配置”的理念,使得我们可以快速开发应用程序而无需大量样板。本指南将向您展示如何使用Phusion Passenger在您的Linode上部署Rails应用程序。Passenger允许您直接在Apache应用程序中嵌入Rails应用程序,而无需担心FastCGI或复杂的Web服务器代理。
GIStudy
2018/08/28
5.8K0
在 MySQL 中处理日期和时间(一)
绝大多数数据库存储了大量的“时态”数据。时态数据只是表示时间状态的简单数据。一个组织可能出于各种原因收集时态数据,例如分析天气模式和其他环境变量、监控交通状况、研究人口趋势等。企业还经常需要存储有关何时下订单、何时补货、何时雇用员工,以及有关其日常业务的大量其他信息。
MySQL技术
2022/06/08
3.6K0
在 MySQL 中处理日期和时间(一)

相似问题

带有远程处理错误消息的Rails4表单

10

Rails在远程处理时加载图像

10

Rails提交远程表单并处理无表单响应

12

使用远程API时处理错误

10

rails远程表单

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文