передавая переменную rails в функцию js - PullRequest
7 голосов
/ 27 ноября 2010

Извинения - я новичок, использующий 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? Он просто застрял в этом цикле.

Любая помощь будет очень признательна.

Ответы [ 2 ]

6 голосов
/ 27 ноября 2010

Попробуйте это:

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

Конструкция #{...} выполняет код ruby ​​в фигурных скобках и заменяет всю конструкцию результатом. Может использоваться везде, где вы хотите заменить часть строки некоторым содержимым из переменной или метода ruby.

0 голосов
/ 27 ноября 2010

Использование

= image_tag img.image.url (: эскиз),: class => 'button',: onClick => "replaceImg ('# {img.id}');"

может быть решением или проверить сгенерированный код источника

...