我想在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.是否可以不在链接中传递参数来指示必须呈现的视图?
由于
答案 0 :(得分:7)
不确定是否能解决您的问题,但您不能这样做:
def action_1
# something_to_the_db
redirect_to :back
end
如果您出于某种原因需要访问controller_name
中的action_name
和action_1
:
<%= link_to 'Refresh' refresh_path(:aktion => action_name,
:kontroller => controller_name) %>
aktion
和kontroller
不是拼写错误。你必须像那样写它们,否则它会发生冲突。
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