ruby-on-rails – Rails:获取当前请求的控制器和操作

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – Rails:获取当前请求的控制器和操作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的Rails应用程序中,我使用< html id =<%= params [:controller]“_”params [:action]%>在views / layouts / application.html.erb中.

奇怪的是,params [:controller]和params [:action]的值总是滞后于1个请求,如果它位于开头< body>标签.

所以如果我在用户/ 1,但是我来自用户/,上面的值打开< body>将控制器:“用户”和动作:“索引”. params [:action]不应该“显示”?

那么如果我刷新页面,它会赶上’并且正确地控制器:“用户”和动作:“显示”.

为什么会发生这种情况?如何获取当前的请求控制器和操作?这些参数在第一次产量调用之前不会更新吗?

解决方法

对于控制器,您可以访问本地实例控制器.
如果你想要它的全名,你需要使用像controller.class.name.split(“::”)这样的东西,首先在你的例子中给你UserController.如果您只想要返回用户,可以使用controller.controller_name

对于该操作,您可以使用controller.action_name

更新:

请在您的看法中尝试这些,看看它们是否也落后:

<p><%= controller_name %></p>
<p><%= action_name %></p>

我怀疑他们在我的回答中都提到前面提到的控制器,但值得尝试.

猜你在找的Ruby相关文章