2016-09-28 68 views
3

這是我在這裏的第一篇文章,它可能聽起來很愚蠢。我建立我的第一個rails應用程序。如何在0123應用程序中將<img src= >轉換爲image_tag

我在index.html.erb

<img src="/assets/rand_front/<%= @random_image%>", style='height:50vw;width:100vw;margin-bottom:20px;' > 

此行中我想用image_tag代替img src

什麼是它環繞代碼的正確方法是什麼?

到目前爲止,我已經試過<%= image_tag ("/assets/rand_front/<%= @random_image%>", style='height:50vw;width:100vw;margin-bottom:20px;') %>

<%= image_tag ("/assets/rand_front/<%= @random_image%>"), style='height:50vw;width:100vw;margin-bottom:20px;' %>

和其他許多版本,但沒有一個似乎工作,我究竟做錯了什麼?我該如何正確書寫它?

這個<%= @random_image%>位從控制器中的index方法中取得這個變量。

def index 
    @products = Product.all.order(created_at: :desc).group_by(&:category_id) 
    @images = ["1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg", "6.jpg", "7.jpg", "8.jpg", "9.jpg", "10.jpg"] 
    @random_no = rand(10) 
    @random_image = @images[@random_no] 
end 
+0

BTW,您可以用'@random_image =「#{蘭特(1..10)}。jpg「'或者 - 如果這些只是佔位符 - 」@random_image = @ images.sample' – Stefan

回答

4
<%= image_tag ("rand_front/#{@random_image}", style='height:50vw;width:100vw;margin-bottom:20px;') %> 

image_tag會自動在路徑的開頭添加assets

檢查Image Tag的文檔

1

如果我沒有記錯的話,你在你的資產文件夾rand_front文件夾,所以你應該叫image_tag("#{@random_image}")因爲默認情況下image_tag助手應檢查資產目錄中的所有文件夾中的圖像名稱

對於您可以考慮使用options哈希這將讓你在CSS屬性通過與你的期望值鍵

image_tag("#{@random_image}", height: 20, width: 20)您可以在以前的答案

1

此次檢查出的文檔的CSS屬性是什麼Ruby on Rails是明確處理

<%= image_tag("source", {:style => "width:100px;"}) %> 

(意思是紅寶石允許您與使用此代碼了({}),

對於我來說,首先開始重要的是要知道這是Ruby on Rails實際運行代碼的方式。

換句話說是,你可以離開({})形式,因爲紅寶石會理解你的代碼,希望有助於澄清一些...

相關問題