刷新当前页面的操作

Ton*_*ony 2 model-view-controller action ruby-on-rails ruby-on-rails-3

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

示例:
控制器:A
视图:A,B.

控制器A如下:

def action1
    somethingToTheDB
end
Run Code Online (Sandbox Code Playgroud)

视图A如下:

-html-
-body--link to action 1--/body-
-/html-
Run Code Online (Sandbox Code Playgroud)

视图B如下

-html-
-body--link to action 1--/body-
-/html-
Run Code Online (Sandbox Code Playgroud)

如果我从视图AI来动作1要刷新视图A,如果我来自视图2我要刷新视图2.这是可能的,而不在链接传递参数,指示必须要呈现的看法?

谢谢

Dam*_*ien 7

不确定赶上你的问题,但你不能这样做:

def action_1
  # something_to_the_db
  redirect_to :back
end
Run Code Online (Sandbox Code Playgroud)

如果您出于某种原因需要访问您的controller_name和:action_nameaction_1

<%= link_to 'Refresh' refresh_path(:aktion => action_name, 
                                   :kontroller => controller_name) %> 
Run Code Online (Sandbox Code Playgroud)

aktion而且kontroller不是拼写错误.你必须像那样写它们,否则它会发生冲突.

action_name并且controller_name是变量.写那样的.

它看起来像那样(取决于你的refresh_path,当前的控制器和当前的动作):

<a href="/refresh?aktion=index&kontroller=articles">Refresh</a>
Run Code Online (Sandbox Code Playgroud)

然后在你的控制器中:

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
Run Code Online (Sandbox Code Playgroud)