8

申し訳ありません -- 私は Ruby on Rails を使用する初心者です。それがどのように機能するかについてはまだ少し混乱しています。

現在、私の見解では、スクローラー div の下に、次のコードがあります。

#scroller
 -@other_images.each do |img|
  .thumbnail_wrapper
    .thumbnail_image
      =image_tag img.image.url(:thumbnail), :class => 'button' , :onClick => "replaceImg(img.id);"

@other_images は、ページに表示するすべてのサムネイル画像を保持する変数です。いずれかをクリックすると、別の場所にある div が独自の大きな画像で更新されます。

対応する js 関数は次のとおりです。

:javascript
 function replaceImg(id){
  var url = '/images/refresh/' + id;
  new Ajax.Updater('content_image', url);
 }

これは、有効な URL を書き込むだけで機能します。しかし、パラメーター「id」を js 関数に渡しても機能しません。私は途方に暮れています...何が欠けていますか?

この Rails 変数 -- img --- を js に渡すにはどうすればよいですか? そのループにはまっているだけです。

どんな助けでも本当に感謝しています。

4

2 に答える 2

6

これを試して:

img.image.url(:thumbnail), :class => 'button' , :onClick => "replaceImg(#{img.id});"

#{...}コンストラクトは中括弧内のルビーコードを実行し、コンストラクト全体を結果に置き換えます。文字列の一部をruby変数またはメソッドのコンテンツに置き換えたい場所ならどこでも使用できます。

于 2010-11-27T10:00:24.227 に答える
0

使用する

=image_tag img.image.url(:thumbnail), :class => 'button' , :onClick => "replaceImg('#{img.id}');"

解決策になるか、生成されたソースコードを確認してください

于 2010-11-27T10:11:50.433 に答える