我正在使用cycle
Rails方法 - 主要是因为我想不出另一种方式。
我所做的一切,都在我的控制器中声明:
@banner_cycle = [1,2]
在我看来,这样做:
<div class="hidden-sm hidden-xs text-center">
<% @banner_cycle.each do |x| %>
<%= cycle(render "shared/banner_728x90", render "shared/banner_970x250") %>
<% end %>
</div>
这是我遇到的错误:
SyntaxError at /posts/another-awesome-test
syntax error, unexpected tSTRING_BEG, expecting keyword_do or '{' or '('
答案 0 :(得分:1)
除非它已被更改或我已忘记cycle
在页面浏览量中无效。它仅适用于当前视图/页面加载。如果您真的想要替换页面视图,那么您必须在服务器上的某个位置保持状态。或者,如果您对每个用户进行交替,则可以在会话中对其进行跟踪。说些像......
在您的控制器操作中:
session[:banner_cycle] = session[:banner_cycle].to_i + 1
.to_i
是为了防范零。
在您看来:
<div class="hidden-sm hidden-xs text-center">
<% if session[:banner_cycle].even? %>
<%= render "shared/banner_728x90" %>
<% else %>
<%= render "shared/banner_970x250" %>
<% end %>
</div>
我认为积极的用户可能会溢出最大整数值,但我不会在此担心。