Доступны ли переменные экземпляра контроллера в конвейере ресурсов? - PullRequest
3 голосов
/ 29 августа 2011

Учитывая файл posts.js.coffee.erb в конвейере ресурсов, я могу сделать это

  alert "<%= Rails.env %>"

, но как насчет доступа к переменным экземпляра, определенным в контроллере?

  alert "<%= @posts.to_json %>"

Ответы [ 2 ]

2 голосов
/ 25 сентября 2011

Вы не можете. Я пытался добавить функциональность тем в приложение блога, и оказалось, что он не увидит вспомогательные методы приложения или переменные экземпляра.

Вместо этого я создал представление css для действия show в темах, что-то вроде show.css.erb , доступ к которому осуществляется через URL, например / themes / black.css

То же самое можно сделать с помощью javascript, поэтому, если вам нужно конкретное представление javascript, просто создайте представление для posts.js.erb

Эта техника даже не нова в рельсах. Я помню, как кто-то спрашивал в твиттере, можно ли сделать что-то подобное в asp.net mvc еще в 09

Кроме того, вам необходимо, чтобы ваш контроллер отвечал на этот формат, ниже приведен фрагмент приложения, над которым я работал.

def show
  @theme = Theme.find(params[:id])

  respond_to do |format|
    format.html
    format.css
  end
end
1 голос
/ 16 сентября 2011

Я думаю, вам нужно предупредить об этом из представления, а не из статического js-файла.

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