我正在尝试查询我的 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>
最佳答案
你的行为违反了 MVC。您应该在 Controller 中抓取图像:
@image = Picturebook.where(:book => 'vacation').pluck(:img)[0]
然后在你看来:
$('#display_images').append("<img src='" + <%= @image %> + "' >");
直接从 View 查询被认为是不好的形式,因此如果您必须动态获取图像,您应该考虑使用 AJAX 调用来获取 src 属性,并结合使用 respond_to block 和 Javascript 文件来附加返回图像到您的 View 。
如果您只需要显示图像,您可以执行以下操作: Controller :
@images = Picturebook.where(:book => 'vacation')
查看:
<% @images.each do |img| %>
<%= image_tag(img.src) %>
<% end %>
关于javascript - 从sqlite db获取图像并使用JavaScript显示在页面上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32212761/