查看

2011-05-30 28 views
1

首先,我爲此道歉,因爲我不是一個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> 

我得到的網站日誌以下錯誤:

warning: else without rescue is useless 

我可能做這完全錯了。老實說,我只需要這個工作就可以用最少的努力。任何幫助將不勝感激。

+0

該錯誤可能是其他地方在你的代碼。上面的視圖在Rails 3.0.7,Ruby 1.8.7中工作正常。 – Zabba 2011-05-30 20:14:36

回答

5

首先,你需要計算的隨機數在您的控制器,並把它放在一個實例變量,如:

@image_random = rand(2) 

然後,在你的看法:

<% if @image_random == 1 %> 
     <%= image_tag "foo.png" %> 
<% else %> 
     <%= image_tag "bar.png" %> 
<% end %> 

您可以放心地輸 - 在Rails 3中的<%之後:)它自動完成。

記住,蘭特(2)要麼歸還0或1,所以檢查隨機> 1總會出來爲假。

+1

但是爲什麼?那錯誤是什麼意思! – Zabba 2011-05-30 20:05:37

+1

另外... rand(2)會生成一個介於0和1之間的數字,而不是1和2.至少在Ruby 1.9.2 – ardavis 2011-05-30 20:06:38

+1

@ardavis:我的第一個編輯就是關於你們這麼快的:P現在,警告,我敢打賭,它來自上面的代碼,也許如果incredimike膏,我們可以幫助更好。但我認爲我寫的是一個正確的方式來做到這一點。 – Spyros 2011-05-30 20:08:51