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