在Rails视图中显示两个图像之间交替显示

inc*_*ike 1 ruby-on-rails erb

首先,我为此道歉,因为我不是Rails程序员.我只需要弄清楚这一点,以便我可以恢复生产性工作.

我继承了一个RoR站点,需要有一个在页面加载时随机旋转的图像.简单吧?

我的解决方案是生成0到2之间的随机数.如果数字大于1则显示一个图像,否则显示另一个图像.我把它放到一个sidebar.erb文件中:

<div class="shadow">

<%- if rand(2) > 1 %>
        <img src="foo.png"/>
<%- else %>
        <img src="bar.png"/>
<%- end %>
                </div>
Run Code Online (Sandbox Code Playgroud)

我在站点日志中收到以下错误:

warning: else without rescue is useless
Run Code Online (Sandbox Code Playgroud)

我可能完全错了.老实说,我只需要付出最少的努力就可以了.任何帮助将不胜感激.

Spy*_*ros 5

首先,您需要计算控制器中的随机数并将其放在一个实例变量中,如:

@image_random = rand(2)
Run Code Online (Sandbox Code Playgroud)

然后,在您的视图中:

<% if @image_random == 1 %>
        <%= image_tag "foo.png" %>
<% else %>
        <%= image_tag "bar.png" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

您可以安全地丢失 - 在Rails 3中的<%之后:)它已经自动完成.

请记住,rand(2)将返回0或1.因此检查random> 1将始终为false.