Vin*_*ent 4 ruby-on-rails helpers
目前我的布局中有这个:
<body class="<%= controller.controller_name %>">
Run Code Online (Sandbox Code Playgroud)
我想添加一个额外的类,对于设置它的任何控制器中的所有动作都是相同的,类似于:
class SomeController < ApplicationController
body_class 'page'
...
end
class AnotherController < ApplicationController
body_class 'page'
...
end
Run Code Online (Sandbox Code Playgroud)
这将导致:
<body class="some page">
<body class="another page">
Run Code Online (Sandbox Code Playgroud)
实现这一目标最简单的方法是什么?我可以使用控制器类变量吗?
lui*_*7up 12
停止!停止!使用此模式:
<body data-controller="#{controller.controller_path}" data-action="#{controller.action_name}">
Run Code Online (Sandbox Code Playgroud)
整齐!哈?
然后在你的document.ready中为你的控制器 - 动作组合找到你想要的JS脚本...(这可以在文档就绪时自动执行)
所有功劳都归功于:http://viget.com/inspire/extending-paul-irishs-comprehensive-dom-ready-execution
和:
我的解决方案
控制器:
class SomeController < ApplicationController
before_filter lambda { @body_class = 'page' }
...
end
Run Code Online (Sandbox Code Playgroud)
布局:
<body class="<%= "#{controller.controller_name} #{@body_class}".strip %>">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6233 次 |
| 最近记录: |