Dan*_*Tao 202 model-view-controller controller ruby-on-rails view
有没有办法在视图中找出当前控制器的内容?
举例说明为什么我想知道这个:如果几个控制器共享相同的布局,我可能在布局ERB文件中有一个部分,我想根据控制器突出显示当前页面的菜单项.
也许这是一个糟糕的方法.如果是这样,更优选的方法是什么?
不过,我很想知道如何获得当前控制器的名称.
(显然我可以@controller_name = 'users'在每个控制器中放置类似的东西;但这似乎是Rails在幕后已经完成的事情.所以我只是想知道是否有内置方式.)
Mus*_*ili 260
此外,在Rails指南中,它说:
params散列将始终包含:controller和:action键,但您应该使用方法controller_name和action_name来访问这些值
因此,假设您有一个CSS类active,应该插入其页面当前打开的任何链接中(可能使您的样式可以不同).如果您有一个static_pages带有about操作的控制器,则可以在视图中突出显示如此链接:
<li>
<a class='button <% if controller.controller_name == "static_pages" && controller.action_name == "about" %>active<%end%>' href="/about">
About Us
</a>
</li>
Run Code Online (Sandbox Code Playgroud)
Anu*_*haw 237
controller_name 保存用于提供当前视图的控制器的名称.
Tha*_* kp 88
#to get controller name:
<%= controller.controller_name %>
#=> 'users'
#to get action name, it is the method:
<%= controller.action_name %>
#=> 'show'
#to get id information:
<%= ActionController::Routing::Routes.recognize_path(request.url)[:id] %>
#=> '23'
# or display nicely
<%= debug Rails.application.routes.recognize_path(request.url) %>
Run Code Online (Sandbox Code Playgroud)
controller_path保存用于为当前视图提供服务的控制器的路径。(即:)admin/settings。
和
controller_name保存用于服务当前视图的控制器的名称。(即:)settings。
| 归档时间: |
|
| 查看次数: |
111194 次 |
| 最近记录: |