внешний файл javascript со встроенным рубином - PullRequest
0 голосов
/ 02 февраля 2011

Я пытаюсь встроить некоторые данные рельсов во внешний файл js вместо того, чтобы помещать их в тег скрипта в моем .html.haml.Как мне это сделать?Я огляделся и прочитал материал .js.erb, но я в тупике.Я также запутался, если / когда я должен использовать .rjs вообще для этого.Я использую jquery, если это поможет.Спасибо!

для получения дополнительной информации, в основном я пытаюсь следить за Railscast Райана Бэйта http://asciicasts.com/episodes/223-charts,, но помещаю всю информацию о графике во внешнюю js.Он упоминает, что при загрузке страницы должен быть сделан запрос ajax, но я не на 100% знаю, как это сделать.

Пока я экспериментировал со следующим:

в application.js:

$(document).ready(function(){   
   $.ajaxSetup({  
      'beforeSend': function (xhr) {xhr.setRequestHeader("Accept", "text/javascript")}
   });
   $.ajax({ type: 'POST', url: '/graphs'}); 
});

graphs.js.erb (случайный материал, чтобы посмотреть, работает ли он):

$('.some_container').append('hello!');
$('h1').append('hello!');

это работает, хотя привет появляется после краткогозадержка, и я думаю, встроенный рубин тоже будет работать.однако, если я начну добавлять графические элементы в этот файл .js.erb, он перестанет работать (например, data = 1).также кажется, что иметь динамический js-файл очень много.


Edit: 'hello добавляется во все представления, поэтому я, должно быть, делаю что-то не так: / Я только хотел, чтобы он добавлялся в представление профиля.

1 Ответ

0 голосов
/ 03 февраля 2011

Возможно, вам следует поместить этот js-код в партиал и при этом использовать его как html: _myjavascript.html.erb (используйте javascript_tag в партиале).

Вы называете свое представление myview.js.erb, когда оно должно отвечать на запрос JS (не HTML):

respond_to do |format|
  format.js { render 'myview' }
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...