我有一个使用Devise作为身份验证的应用程序。我不希望用户能够更改电子邮件地址。我通过将email属性设置为只读用户模型来完成此操作。
class User < ActiveRecord::Base
attr_readonly :email
end
这很好用:Rails回滚事务。然而,Devise认为更新是成功的并且显示消息成功消息。
"Your account has been updated successfully."
我尝试了几件事情,包括创建我的onw方法,它会返回一个闪存通知,但它一直说该帐户已经成功更新。
当记录未成功保存时,有没有办法引发错误?
在Ashvin's anwser之后编辑。这就是我的模型中的内容:
def email=(address)
begin
if new_record?
write_attribute(:email, address)
end
rescue Exception => error
flash[:alert] = error.message
end
end
答案 0 :(得分:0)
我不知道我是否得到了你的问题,但从我得到的是解决方案。您可以在记录回滚时使用异常处理
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.Data;
namespace Database.model
{
public class student
{
public int id { get; set; }
public string name { get; set; }
private string age { get; set; }
public DataTable GETSQLServerData()
{
//Connect
var _connectionobject = new SqlConnection();
_connectionobject.ConnectionString = @"Provider=SQLOLEDB;Data Source=PHYSICS\SQLEXPRESS;Persist Security Info=true;Initial Catalog=master;Integrated Security=True; provider = SQLOLEDB;";
_connectionobject.Open();
//Command
var _commandObject = new SqlCommand();
_commandObject.CommandText = "select * from dbo.tblStudent";
//Execute
_commandObject.ExecuteReader();
//Data
var _dataReader = _commandObject.ExecuteReader();
DataTable obj2 = new DataTable();
obj2.Load(_dataReader);
_connectionobject.Close();
return obj2;
}
}
}