• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

如何根据导航栏中的页面标题更改车身标签ID?

ruby-on-rails 来源:FalconBrazilT1 4次浏览

使用Ruby on Rails(5)我想使用if语句来根据我所呈现的视图更改body标签的ID。 具体而言,我只想在我的主页上使用背景图片,而不是使用其他图片。我想让它填满屏幕,但是如果我把它放在页面上,它就会自动出现边框。所以我想将它附加到application.html.erb视图中的body标签,以便ID会告诉CSS加载背景图片。但是我不能得到:标题告诉ERB它在那里并且声明是真实的。如何根据导航栏中的页面标题更改车身标签ID?

我使用的视图页面上提供像这样:

<% provide(:title, "Home") %> 

然后在application.html.erb页我尝试使用,如果把body标签使用或不使用CSS语句背景图片的ID基于提供的标题,如下所示:

<!DOCTYPE html> 
<html> 
    <head> 
    <title><%= yield(:title) %></title> 
    ... 
    </head> 

    <% if :title == "Home" %> 
    <body id="home-background"> 
    <% else %> 
    <body> 
    <% end %> 

但它似乎并不奏效。标题将“屈服”并显示在地址栏中,但不会显示在if语句中。我也试图把yield(:title)放在一个变量中,rails也不喜欢这个。这是我的第一个单独滑轨项目,我知道这应该是可能的,但我无法找到正确的方法,任何帮助将不胜感激。


===========解决方案如下:

我不会给你推荐的body标签…但你可以只是body一个背景图像后使用wrapper …它可以是这样的: –

你唯一需要是创建一个实例变量(@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; 
    } 

希望它有助于.. :)


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)