2017-04-01 79 views
0

我在我的控制器中調用導入方法來導入文件。如果在導入時嘗試保存對象並且未通過模型驗證,那麼我將如何將驗證錯誤消息返回到project_data_path(或返回索引視圖的其他方式)?從模型方法返回驗證錯誤消息的Rails

我試圖在控制器中的if語句,但它只是給了我一個驗證失敗的錯誤

控制器

def import 
    if Datum.import(params[:file],params[:project_id]) 
    redirect_to project_data_path, notice: "data imported." 
    else 
    redirect_to project_data_path #if import fails, need to send errors 
    end 
end 

型號

def self.import(file, proj_id) 
    ##.. working logic that imports file into datum..## 

    ## below works fine if there are no validation errors 
    datum.save! ##model validation error happens here 

    end 
end 

回答

0

save!拋出一個異常,而save只返回truefalse。只需刪除感嘆號。

+0

是的,這是問題,在刪除!後,我能夠添加'返回datum.errors'來讀取錯誤 – HoosierCoder

+0

@HoosierCoder祝賀! –