Rails 3.2: Запуск CoffeeScript в действии show - PullRequest
1 голос
/ 04 марта 2012

У меня есть действие show, и я хотел бы вызвать функцию после завершения загрузки. Функция зависит от загрузки jQuery, а также от остальной части application.js.

Я попытался создать show.js.coffee, в этом есть:

SomeClass.doSomething '<%= @thing.description %>'

... но show.js.coffee никогда не загружается и, следовательно, никогда не выполняется. Как мне это сделать?

Ответы [ 2 ]

5 голосов
/ 26 марта 2012

Версия 3.2 гема coffee-rails добавляет поддержку запросов JavaScript в каталоге app/views:

Также добавлена ​​поддержка использования CoffeeScript для ответа на запросы JavaScript (используйте представления .js.coffee).

ПРИМЕЧАНИЕ: Переместите gem coffee-rails из group :assets.

Просто вызовите действие things#show как обычно(remote: true) и убедитесь, что существует файл с именем app/views/things/show.js.coffee.

0 голосов
/ 14 марта 2012

Может быть, я что-то упускаю, но это звучит так, как будто есть две вещи: 1) должно быть какое-то событие DOM, которое запускает выполнение, и 2) ERB и контекст контроллера (<%= @thing.something %>) присутствуют и обрабатываются только в Просмотры. В этом случае это звучит как document.ready - событие. Таким образом, предполагая, что вы определили SomeClass в CoffeeScript где-то, где он уже был загружен, ваш файл show.js.coffee (который выполняется в контексте javascript / DOM) может выглядеть примерно так:

$ ->
  SomeClass.doSomething $("#thing_something").val()

Вполне возможно, что вы могли бы получить часть ERB, добавив что-то подобное в ваш show.html.erb просмотр

<script type="text/coffeescript">
  $ ->
    SomeClass.doSomething '<%= @thing.description %>'
</script>

Не уверен насчет этого ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...