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.这是可能的,而不在链接传递参数,指示必须要呈现的看法?
谢谢
不确定赶上你的问题,但你不能这样做:
def action_1
# something_to_the_db
redirect_to :back
end
Run Code Online (Sandbox Code Playgroud)
如果您出于某种原因需要访问您的controller_name
和:action_name
action_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)
归档时间: |
|
查看次数: |
12753 次 |
最近记录: |