2011-05-30 87 views
1

我似乎無法處理錯誤消息。這裏是我的方法:在rails中顯示錯誤消息

def destroy 
    @user = User.find(current_user) 
    @authorization = Authorization.find(params[:id]) 
    if @user.authorizations.count > 1 
     @authorization.destroy 
     redirect_to(user_path(current_user)) 
    else 

... 


    end 
    end 

我不希望用戶刪除他們最後的授權(比如Facebook)的,因爲這樣用戶不會有任何相關的授權和賬戶丟失。我想發送一條錯誤消息,說明爲什麼銷燬方法失敗,但我不知道如何。我試過的所有東西都不起作用。

我試過的東西@ user.errors.add =>「錯誤消息」

但它只是顯示空白。我認爲我的問題是使用渲染。如果我嘗試,例如:

respond_to do |format| 
     @user.errors[:base] << "Sorry, you can't delete your only authorized service." 
     format.html render :template => "users/show" 
     end 

我得到一個問題,因爲軌開始尋找用戶諧音/節目出於某種原因,授權目錄裏面,大概是因爲我打電話的授權控制器從用戶查看。

下面是如何顯示我的觀點閃光燈:

def show_flash 
     [:notice, :errors, :alert].collect do |key| 
      msg = (flash[key].to_s + " (close)") 
      content_tag(:div, (content_tag(:a, msg, :class => "#{key}", :href => "#", :onclick => "$('messages').slideUp(); return false;")), :id => key, :class => "flash_#{key}") unless flash[key].blank? 
      end.join 
    end 

我可以通知出現就好了。

回答

0

所以,這似乎是工作:

respond_to do |format| 
     format.html {redirect_to(@user, :alert => "Sorry, you can't delete your only authorized service.")}  
end 

但是,這並不:

respond_to do |format| 
     format.html {redirect_to(@user, :errors => "Sorry, you can't delete your only authorized service.")}  
end