2013-05-01 103 views
9

有沒有辦法在link_to中包含重定向?我想在刪除後刷新當前頁面。但是,您可以從應用中的多個視圖中刪除相同的記錄。Rails重定向到前一頁(後)刪除後

這是的link_to:

<%= link_to 'Delete', expense, confirm: 'Are you sure?', method: :delete, :class => 'btn btn-mini btn-danger' %> 

如果沒有,是否有意義保存在閃存中current_url [:fromurl]則提出,在控制破壞這樣的部分:

respond_to do |format| 
    format.html { redirect_to flash[:fromurl] } 
    format.json { head :no_content } 
    end 

感謝您的幫助!

+2

你有沒有考慮遠程製作的鏈接,這樣就可以處理與JS特定的股利和這樣你就不必重新加載整個頁面的刷新? – 2013-05-01 18:00:56

+0

也許'redirect_to:back'? – MrYoshiji 2013-05-01 18:05:10

+0

聽起來不錯 - 但是,我不知道要開始做。任何你可以指出我解釋的地方? – Reddirt 2013-05-01 18:05:24

回答

24

可以使用redirect_to :back

respond_to do |format| 
    format.html { redirect_to :back } 
    format.json { head :no_content } 
end 

它使用頭文件 「HTTP_REFERER」 從請求:

redirect_to :back 
# is a shorthand for: 
redirect_to request.env["HTTP_REFERER"] 
+0

MrYoshiji,我想知道你是否願意爲我看這個問題?我真的很感激。 http://stackoverflow.com/questions/16279090/rails-passing-information-from-a-view-to-a-form – Reddirt 2013-05-01 20:12:20

+3

MrYoshiji - redirect_to:back如果從顯示頁面以外的任何頁面中刪除。因爲,後面試圖帶你回去顯示你剛刪除的記錄。我發佈了一個新問題。 – Reddirt 2013-05-03 16:57:45

+0

@Reddirt你們每個人都知道如何讓':back'嘗試將你發送到剛刪除的記錄嗎? – Gcap 2016-01-16 00:59:12

2

在Rails 5(Official Docs),您可以使用更新: redirect_back(fallback_location: root_path)

使用此功能將用戶重定向到引薦頁面(上一頁,與redirect_to :back相同)。如果這不可行,則會重定向到控制器中指定的回退位置。

在控制器中的方法的一個例子(在此將用戶重定向到該根路徑作爲備用位置):

def some_method 
    #Your Code Here 
    redirect_back(fallback_location: root_path) 
end 

用於刪除expense和重定向回方法的一個例子,用一回退到root_path

def destroy 
    @expense.destroy 
    redirect_back(fallback_location: root_path) 
end 

下面是一些可以用來瀏覽器重定向到一個特定的頁面的fallback_location的一些其他的例子,如果引用頁不能被重定向到:

redirect_back fallback_location: "http://www.google.com"  #Redirects to Google (or any website you specify) 
redirect_back fallback_location: "/images/screenshot.jpg" #Redirects to a local image 
redirect_back fallback_location: posts_path     #Redirects to the 'posts' path 
redirect_back fallback_location: new_user_path    #Redirects to the new user path