0

Railsアプリにアップロードされた画像にjQueryでアクセスしようとしています。つまり、画像を切り替えるなどです。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 に答える