1

我想創建一個Rails控制器,它確實在DB的東西,然後一個動作只是刷新當前頁面。的行動,刷新當前頁面

實施例:
控制器:甲
查看:A,B.

控制器A是以下:

def action1 
    somethingToTheDB 
end 

視圖A是以下:

-html- 
-body--link to action 1--/body- 
-/html- 

視圖B是以下

-html- 
-body--link to action 1--/body- 
-/html- 

如果我從視圖AI來動作1要刷新視圖A,如果我來自視圖2我要刷新視圖2.這是可能的,而不在鏈接傳遞參數,指示必須是視圖渲染?

感謝

+0

我不跟隨。提供更多的實際代碼(如果存在的話)可能會很有用。你提出問題的方式,我期望看到'action1.html.haml'或類似的視圖 - 而不是'A'和'B'。 – toddsundsted 2011-12-23 17:51:02

回答

6

不是一定要抓住你的問題,但你不能只是做:

def action_1 
    # something_to_the_db 
    redirect_to :back 
end 

如果您需要訪問您的controller_nameaction_nameaction_1無論出於何種原因:

<%= link_to 'Refresh' refresh_path(:aktion => action_name, 
            :kontroller => controller_name) %> 

aktionkontroller沒有錯字。你必須這樣寫,否則會發生衝突。

action_namecontroller_name是變量。像那樣寫出來。

它看起來像這樣的事情(這取決於你的refresh_path,你的電流控制器和當前的動作):

<a href="/refresh?aktion=index&kontroller=articles">Refresh</a> 

然後在你的控制器:

def action_1 
    kontroller = params[:kontroller] 
    aktion  = params[:aktion] 
    # Do whatever you want in the db 
    redirect_to :controller => kontroller, :action => aktion 
    # or redirect_to :back (better IMO) 
end 
+0

確實,只有'redirect_to:back'將會返回到引用者。 – nathanvda 2011-12-25 14:02:02

+0

@nathanvda這就是我最初以爲,但也許他需要基於引薦做一些特定的分貝...但同樣,'redirect_to的:back'將執行初始查詢等等...不知道要了解他的問題,等待他的反應;) – Damien 2011-12-25 16:21:44

+0

我需要訪問我的控制器和動作,所以我認爲這是答案。 – Tony 2011-12-26 14:25:42