2011-05-19 37 views
0

當編輯的值不相同導致rails不執行UPDATE時,如何捕獲並返回警告?Rails - 當編輯的值不相同時,如何捕獲並返回警告

+3

你是什麼意思的值不是一樣的?什麼類型的值? – 2011-05-19 19:53:25

+1

同意@Devin,需要更多信息。您可以使用對象本身的屬性檢查params屬性,如果它們匹配則不執行更新,但這沒有多大意義。 – RyanJM 2011-05-19 20:02:53

+0

我的意思是,如果有人點擊編輯他們的出生日期,但沒有改變任何東西,只是提交相同的出生日期,我想閃動通知。 – oprogfrogo 2011-05-21 02:26:12

回答

1

你可以在你的控制器中處理它。在基本的更新定義中:

def update 
    if birth_date_changed? && @user.update_attributes(params[:user]) 
    flash[:notice] = 'User was successfully updated.' 
    redirect_to post_url(@post) 
    else 
    flash[:warning] = 'Birth date did not changed' unless birth_date_changed? 
    render :action => "edit" 
    end 
end 

private 
def birth_date_changed? 
    @user.birth_date != params[:user][:birth_date] 
end 
相關問題