在我的Rails应用程序中,我在views/layouts/application.html.erb中使用
<html id=<%= params[:controller] + "_" + params[:action] %>
。奇怪的是,如果这些值出现在开头的<body>
标签之上,params[:controller]
和params[:action]
的值总是比请求滞后1个。因此,如果我在users/1
页面,但是我从users/
来的,那么在<body>
标签之上的值将为controller: "users"和action: "index",而不是 params[:action]
不应该是"show"吗?如果我刷新页面,它会“追赶上来”,并正确地显示controller: "users"和action: "show"。为什么会发生这种情况?我如何获得当前请求的控制器和操作?这些参数是否只有在第一次调用yield
时才会更新?
<html id="<%= "#{params[:controller]}_#{params[:action]}" %>">
怎么样? - Vucko