从sqlite db获取图像并使用JavaScript在页面上显示

时间:2015-08-25 19:46:41

标签: javascript ruby-on-rails sqlite

我正在尝试查询我的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>

1 个答案:

答案 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 %>