2014-09-05 49 views
0

我正在使用rails4。在我的控制器中,我解析了json并存入数据库。 我的控制器是这样的,使用create处理错误!方法在Rails4中

def store 
    @data.each do |invite| 
    MemberInvitation.create!(:email => invite['email']) 
    end 
end 

这工作得很好....

我们知道create will automatically call validators但如果验证失败如何使用JSON渲染显示错误消息。因为我在MemberInvitation模型中定义验证。

如何处理这种情况!

我想呈现JSON格式的错误消息,如果错误提出!

回答

2

一个快速的方法来得到一个报告:

def store 
    errors = [] 
    @data.each do |invite| 
    new_member = MemberInvitation.new(:email => invite['email']) 
    errors.push(new_member) unless new_member.save 
    end 
    if errors.empty? 
    #everything went fine 
    else 
    # you have all members with issues in the array 
    # I advise you to create your json yourself 
    end 
end 
+0

柏迪创建存储在数据库中的最后一封电子邮件,而无须给予任何错误信息!它应该显示错误信息而不是存储到数据库中! – RubyOnRails 2014-09-05 07:39:45

+0

保持冷静。有什么问题?如果有一个单一的错误,你不希望任何成员持续存在? – apneadiving 2014-09-05 07:41:05

+0

@RubyOnRails新将只启动一个对象,没有什么是保存到分贝尚未在该行 – Nimir 2014-09-05 07:43:24