拥有包含1个字段,电子邮件地址的表单。
使用return false取消before_save for 2.2,但它会回滚更新并取消创建,我只希望不创建记录。
我是在正确的道路上吗?还有更好的方法吗?
答案 0 :(得分:0)
很奇怪你有用户A的对象,但更新用户B的行......
也许您可以先在控制器中找到正确的用户对象:
@user = User.find_by_email(params[:email]) || User.new(params[:email])
如果找不到相应的对象, User.find_by_xxx
将返回nil(如果匹配了两个或更多对象,则返回第一个对象)。
答案 1 :(得分:0)
你可以自己创建自己的before_save方法并调用它而不是object.save
例如
def custom_save
if email_address_exists? # this would be a method you create
self.save
else
# update record in other model
end
end
然后在你的控制器中使用它而不是save(即model.custom_save)