rails: доступ к переменной экземпляра в файле js.erb - PullRequest
6 голосов
/ 03 июня 2009

Я пытаюсь получить доступ к переменной экземпляра из файла js.erb.

#controller
def get_person
  @person = Person.find(1)

  respond_to do |format|
   format.js{}
  end
end

#get_person.js.erb
alert('<%= @person.last_name %>')

Когда я просматриваю [controller_name_here] /get_person.js ... я получаю нулевую ошибку объекта на @person. (Я знаю, что Person.find (1) возвращает объект)

Примечание. На самом деле у меня проблемы с рендерингом частичного фрагмента в файле js.erb, и я пытаюсь определить причину.

Ответы [ 2 ]

5 голосов
/ 04 июня 2009

У меня работает следующее:

В /app/controllers/foo_controller.rb:
class FooController < ApplicationController
  def get_person
    @person = Person.find(1)
    respond_to do |format|
      format.js
    end
  end
end
В /app/views/foo/get_person.js.erb:
<%= render :partial => '/foo/some_partial', :locals => { :person => @person } %>
В /app/views/foo/_some_partial.js.erb:
person = {
  last_name: '<%= person.last_name -%>'
}
0 голосов
/ 22 января 2014

В вашем файле js.erb больше нет партиала рендеринга. Я только что обнаружил это сегодня.

https://github.com/rails/rails/issues/1370

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