刷新当前页面的操作

时间:2011-12-23 17:23:08

标签: ruby-on-rails ruby-on-rails-3 model-view-controller action

我想在Rails控制器中创建一个动作,它在数据库中执行某些操作,然后刷新当前页面。

例:
控制器:A
观点: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.是否可以不在链接中传递参数来指示必须呈现的视图?

由于

1 个答案:

答案 0 :(得分:7)

不确定是否能解决您的问题,但您不能这样做:

def action_1
  # something_to_the_db
  redirect_to :back
end

如果您出于某种原因需要访问controller_name中的action_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