如何在每个其他网页浏览中显示两个不同的部分?

时间:2014-11-24 23:05:46

标签: ruby-on-rails ruby-on-rails-4

我正在使用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 '('

1 个答案:

答案 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>

我认为积极的用户可能会溢出最大整数值,但我不会在此担心。