使用Ruby on Rails(5)我想使用if语句根据我正在渲染的视图来更改body标签的ID。 具体来说,我只想在我的主页上使用背景图像,而不是在任何其他图像上。我想要这个填满屏幕,但是如果我把它放在页面上它就会自动出现一个边框。所以我想将它附加到application.html.erb视图中的body标签,这样ID就会告诉CSS加载背景图像。但我无法得到:标题告诉ERB它在那里并使声明成立。
我在视图页面上使用了提供,如下所示:
<% provide(:title, "Home") %>
然后在application.html.erb页面中,我尝试使用if语句根据提供的:title将带有或不带背景图像的CSS ID的body标签放入,如下所示:
<!DOCTYPE html>
<html>
<head>
<title><%= yield(:title) %></title>
...
</head>
<% if :title == "Home" %>
<body id="home-background">
<% else %>
<body>
<% end %>
但它似乎不起作用。标题将“生成”并显示在地址栏中,但不会显示在if语句中。我也尝试将yield(:title)放在变量中,rails并不喜欢这样。这是我的第一个solo rails项目,我知道这应该是可行的,但我找不到如何正确地做到这一点,任何帮助都将不胜感激。
答案 0 :(得分:0)
我不推荐您使用body
代码...但您可以在wrapper
之后使用body
作为背景图片......它可以是这样的: -
您唯一需要的是创建一个在下面使用的实例变量(@title
)
###application.html.erb
<body>
<div class="<%= @title=="USER" ? 'user_wrapper' : 'default_wrapper' %>">
</div>
</body>
##css
.user_wrapper{
background: url(user_background.jpg) no-repeat center center fixed;
}
.default_wrapper{
background: url(default_background.jpg) no-repeat center center fixed;
}
希望它能帮助.. :)