Html 使用if语句为不同的页面使用不同的标题,但标题保持不变

Html 使用if语句为不同的页面使用不同的标题,但标题保持不变,html,ruby-on-rails,layout,header,Html,Ruby On Rails,Layout,Header,我编写了一个简单的if语句,根据用户所在的页面更改标题,如下所示: <% if @miscpage = true %> <%= render 'layouts/mischeader' %> <% elsif @gallerypage = true %> <%= render 'layouts/galleryhead' %> <% elsif @photopage = true %> <%= render 'layou

我编写了一个简单的if语句,根据用户所在的页面更改标题,如下所示:

<% if @miscpage = true %>
  <%= render 'layouts/mischeader' %>
<% elsif @gallerypage = true %> 
  <%= render 'layouts/galleryhead' %>
<% elsif @photopage = true %>
  <%= render 'layouts/photoheader' %>
<% end %> 

然后在特定页面的控制器中,@变量设置为true。但问题是,每当我转到任何其他页面时,错误引导程序都会持续存在。就像应用程序布局没有重置渲染过程一样

我已经通过切换上面if语句的顺序对此进行了测试,事实上,如果首先计算@photopage=true,则photoheader将在所有页面中持久存在

我已经通过编写如下单独的if语句进行了进一步的测试,事实上,在访问miscpage和photopage之后,现在我得到了两个标题

<% if @miscpage = true %>
  <%= render 'layouts/mischeader' %>
<% end %>

<% if @gallerypage = true %> 
  <%= render 'layouts/galleryhead' %>
<% end %>

<% if @photopage = true %>
  <%= render 'layouts/photoheader' %>
<% end %> 


知道如何解决这个问题吗?

x=true
是一项任务。您正在将true赋值给x。它将永远成功。您需要
x==true
来测试相等性


=
vs
=

您确实不需要在
if
语句中将变量与
true
布尔值进行比较。但对于您的情况,您正在使用赋值运算符
=
,请将它们更改为比较运算符
=
,或者从所有
if
elsif
语句中去掉
=true

是的,当然。。。伙计,这些容易的家伙一直在打我。给你的数字啤酒!