Rails和jQuery:访问图像

时间:2012-08-20 01:59:36

标签: jquery ruby-on-rails

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

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

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

@a.image.url(:thumb)

任何帮助都会很棒。

2 个答案:

答案 0 :(得分:1)

如果您的图片是由用户上传的,那么它们不是资产管道意义上的“资产”。您无法使用资产助手来为其提供服务。继续使用/images/000/000/etc来访问它们。

资产是永久文件,位于app/assets。它们不能动态上传内容,因为整个目的是预编译它们以进行生产。如果在运行rake assets:precompile时“编译”时文件不可用,则它不适合资产管道。

答案 1 :(得分: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');
});

可以帮助别人。