我使用的是Rails 4.1.5和Ember 1.7.0。我有一个问题是如何从我的服务器api发送错误消息。
这样的代码:
begin
ActiveRecord::Base.transaction do
a.save
b.update(xxx)
c.update(xxx)
end
return a
rescue ActiveRecord::RecordInvalid => e
a.errors.add(:base, e.message)
end
如果我使用a.errors.add(:base, e.message)
从transaction
获取错误消息。 json
会喜欢这样:
errors: {base:[RecordInvalid: Name can not be blank]}
但我认为这样的错误信息更好:
errors: {name:[can not be blank]}
如果我想得到像name:[can not be blank]
这样的错误,我可以编写如下代码:
begin
ActiveRecord::Base.transaction do
a.save
b.update(xxx)
c.update(xxx)
end
return a
rescue ActiveRecord::RecordInvalid => e
return a
end
但它也有问题。如果b模型更新有RecordInvalid
个错误,我不会得到b模型错误消息。
所以我不知道如何从事务管理我的错误消息。