写了这样两个模型 member 和baby
member代码
class Member < ActiveRecord::Base
#模型关系设置
has_one :baby
#数据校验区
validates_presence_of :name,:emailend
baby代码
class Baby < ActiveRecord::Base
#模型关系设置
belongs_to :member
#数据校验区
validates_presence_of :name,:nickname,:sex,:member
end
在member模型里有这样一段代码
#注册信息
def self.enroll(member,baby)
begin
transaction(member,baby) do
member.baby = baby
member.save!
baby.save!
end
rescue
end
end
在控制器代码中接受用户提交的参数,但在调用enroll方法后,事务逻辑是正确的,在member和baby任一对象保存不成功,则重新返回注册页面提交数据,但为什么属性的错误信息没有了?如果使用save方法,不适应save!方法的话,错误信息还在,但事务逻辑不正确,没有异常出现了
save!方法会抛出异常,来通知事务出错,但save!方法不会将错误信息放到errors里面么?
本文探讨了Rails应用中如何正确处理事务与错误信息。通过具体的Member和Baby模型示例,分析了使用save!方法时遇到的问题:事务逻辑虽正确执行,但错误信息丢失。文章进一步讨论了save和save!方法的区别及如何确保错误信息得以保留。
174

被折叠的 条评论
为什么被折叠?



