我正在尝试查询我的sqlite表以获取图像并将其显示在页面上。这是我正在使用的代码。奇怪的是[0]到[4]没有显示任何东西,[5]和更高的返回未定义。我的表中只有5个项目,所以看起来查询工作正常,但它仍然没有将项目加载到页面上。
<script type="text/javascript">
$(document).ready(function() {
var image = <%= Picturebook.where(:book => 'vacation').pluck(:img)[0] %>;
$('#display_images').append("<img src='" + image + "' >");
});
</script>
答案 0 :(得分:1)
您正在做的是违反MVC。您应该抓住控制器中的图像:
@image = Picturebook.where(:book => 'vacation').pluck(:img)[0]
然后在你看来:
$('#display_images').append("<img src='" + <%= @image %> + "' >");
直接从您的视图中查询它被认为是错误的形式,因此如果您必须动态获取图像,您应该考虑使用AJAX调用来获取src属性并将response_to块与Javascript结合使用文件以将返回的图像附加到您的视图。
如果您只需要显示图像,则可以执行以下操作: 控制器:
@images = Picturebook.where(:book => 'vacation')
查看:
<% @images.each do |img| %>
<%= image_tag(img.src) %>
<% end %>