1

DB内の何かを実行し、現在のページを更新するアクションをRailsコントローラで作成したいとします。現在のページをリフレッシュするアクション

例:
コントローラ:
回数:A、B.

コントローラAは、以下である:

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

ビュー:

def action1 
    somethingToTheDB 
end 

ビューAは、以下でありますBは次のとおりです

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

ビュー1からアクション1に来たら、ビュー2から来ていればビューAをリフレッシュしたいです。ビュー2をリフレッシュしたいと思います。リンク内のパラメータを渡さずに、レンダリング?

おかげ

+0

を私は従いません。実際のコードが存在する場合は、それ以上のコードを提示すると便利です。あなたが疑問を提示したやり方では、私は 'action1.html.haml'またはそれに類似するビューを見たいと思います。' A'と 'B'ではありません。 – toddsundsted

答えて

6

ないあなたの質問をキャッチしてくださいしかし、あなただけで行うことはできません。

<%= link_to 'Refresh' refresh_path(:aktion => action_name, 
            :kontroller => controller_name) %> 
:あなたが何らかの理由であなたの action_1であなたの controller_nameaction_nameにアクセスする必要がある場合は

def action_1 
    # something_to_the_db 
    redirect_to :back 
end 

aktionkontrollerはタイプミスではありません。あなたはそれらのように書く必要があります。そうでなければ、それは衝突します。

action_nameおよびcontroller_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

+0

@nathanvdaこれは私が当初考えていたものですが、リファラーに基づいてデータベース内で何か特別なことを行う必要があるかもしれません...しかし、再度、 'redirect_to:back'は最初のクエリを実行します...彼の質問、 ) – Damien

+0

コントローラとアクションにアクセスする必要があるので、これが答えだと思います。 – Tony

関連する問題