2014-09-02 125 views
0

我有一個情況,用戶可以同時創建多個記錄顯示的錯誤,所以我的控制器操作是這樣的:導軌:多個型號

if Unit.create multiple_unit_params.values 
    redirect_to units_path 
    else 
    render :new 
    end 

驗證可能會失敗的任何一個記錄。那麼,如果我不知道記錄驗證失敗了,那麼我該如何在視圖中渲染錯誤,因爲有多個記錄?

回答

0

克服這個問題的一種方法是使用引發異常的方法create!。異常對象包含有關失敗模型的信息。

我傾向於使用的模式如下:

def create 
    @unit = Unit.new(multiple_unit_params.values) 

    @unit.save! 

    redirect_to(units_path) 

rescue ActiveRecord::RecordInvalid => e 
    # ... Deal with exception 
end 

如果您要創建多個記錄,你可能要來封裝在一個事務中,這樣你就不會結束了一些創建,一些自存。這將是一個全或無的事情。異常會自動解除交易。