dem*_*mas 7 ruby ruby-on-rails
如何在Rails中设置body标签的ID?
<body id="login">
Run Code Online (Sandbox Code Playgroud)
Dam*_*che 25
我没有发现任何特别优雅或灵活的解决方案.body_class向application_helper.rb添加方法:
def body_class
[controller_name, action_name].join('-')
end
Run Code Online (Sandbox Code Playgroud)
..布局:
<body class="<%= body_class %>">
#e.g output: <body class="articles-show">
Run Code Online (Sandbox Code Playgroud)
然后,您可以优化上面的帮助程序以动态注入其他标识符,例如模块.
你应该在这里使用content_for标签.
在您的应用布局中:
<html>
...
<%= yield :body || "<body>" %>
...
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
然后从任何视图你可以这样称呼:
<% content_for :body do %>
<body id='login'>
<% end %>
Run Code Online (Sandbox Code Playgroud)
而已 :)
您可以在控制器内或视图中的操作中设置变量@body_id,并且可以在布局中使用它。
例如,如果您有一个操作索引,您可以在控制器中添加以下代码:
def index
@body_id = "myid"
end
Run Code Online (Sandbox Code Playgroud)
或者在您的视图中index.html.erb为:
<% @body_id = "myid" %>
Run Code Online (Sandbox Code Playgroud)
然后在您的布局中,我想您可以添加 application.html.erb:
<body<%= " id=#{@body_id}" if @body_id %>> # no quotes around #{} are needed ;)
Run Code Online (Sandbox Code Playgroud)