0

我正在尝试使用 jQuery 访问上传到我的 Rails 应用程序的图像,即切换图像等。jQuery 非常简单:

$('#a1').change(function() {
  var src = $(this).val();
  $('#t1').html(src ? "<img src='../../images/000/000/"+src+".jpg' />":"");
});

尝试将 Rails 资产调用与 jQuery 一起使用时,我完全陷入困境。我可以在页面的其他地方调用所需的图像,因此:

@a.image.url(:thumb)

任何帮助都会很棒。

4

2 回答 2

1

如果您的图像是由用户上传的,那么它们就不是资产管道意义上的“资产”。您不能使用资产助手为他们服务。继续使用/images/000/000/etc以访问它们。

资产是驻留在app/assets. 它们不能是动态上传的内容,因为整个目的是为了生产而预编译它们。如果文件在您运行时的“编译”时不可用rake assets:precompile,则它不是资产管道的良好候选者。

于 2012-08-20T02:03:04.347 回答
0

我将自己回答这个问题,以防它对某人有所帮助。我没有使用 jQuery 直接访问图像,而是在 Rails 中为它们分配了 ID,因此:

<% @articles_by_page.each do |m| %>
<%= image_tag(m.image.url(:large), :id => 'article1_thumb'+m.issue_id.to_s) %>
<% end %>

随后在 jQuery 中处理了它们的可见性:

$('#doc_article1').change(function() {
    var src = $(this).val();
    $('#thumbs1 a').css('display', 'none');
    $('#article1_thumb'+src).css('display', 'block');
});

可能会帮助某人。

于 2012-08-21T05:01:31.683 回答