2015-08-25 63 views
0

我想查詢我的sqlite表以獲取圖像並將其顯示在頁面上。這是我正在使用的代碼。奇怪的是[0]到[4]沒有顯示任何內容,[5]和更高的回報未定義。我的表只有5個項目,所以它看起來像查詢工作,但它仍然不會加載到頁面上的項目。從sqlite數據庫中獲取圖像並使用JavaScript在頁面上顯示

<script type="text/javascript"> 

    $(document).ready(function() { 

     var image = <%= Picturebook.where(:book => 'vacation').pluck(:img)[0] %>; 
     $('#display_images').append("<img src='" + image + "' >"); 

    }); 

</script> 

回答

1

你在做什麼違反了MVC。你應該在你的控制器來抓取圖像:

@image = Picturebook.where(:book => 'vacation').pluck(:img)[0] 

然後在您的視圖:

$('#display_images').append("<img src='" + <%= @image %> + "' >"); 

它認爲是不好的形式直接從您的視圖查詢,所以如果你有得到的圖像飛,你應該考慮使用AJAX調用來獲取src屬性,並使用respond_to塊與Javascript文件結合,將返回的圖像附加到視圖中。

如果你只是想顯示你可以做圖片: 控制器:

@images = Picturebook.where(:book => 'vacation') 

查看:

<% @images.each do |img| %> 
    <%= image_tag(img.src) %> 
<% end %> 
+0

什麼是不顯示重複的圖像的最佳方式? – Senju

+1

你可以做@images = Picturebook.where(:book =>'vacation')。map(&:img).uniq –

+0

很酷,工作,我只需要改變'<%= image_tag(img.src)% >'到'<%= image_tag(img)%>' – Senju

相關問題