rails:访问js.erb文件中的实例变量

Lee*_*Lee 6 javascript ruby ajax ruby-on-rails

我试图从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 %>')
Run Code Online (Sandbox Code Playgroud)

当我浏览[controller_name_here] /get_person.js时......我在@person上得到一个nil对象错误.(我知道Person.find(1)返回一个对象)

注意:我实际上在我的js.erb文件中渲染部分时遇到问题,并且我正在尝试确定原因.

Jam*_*sen 5

以下适用于我:

/app/controllers/foo_controller.rb:
class FooController < ApplicationController
  def get_person
    @person = Person.find(1)
    respond_to do |format|
      format.js
    end
  end
end
Run Code Online (Sandbox Code Playgroud)/app/views/foo/get_person.js.erb:
<%= render :partial => '/foo/some_partial', :locals => { :person => @person } %>
Run Code Online (Sandbox Code Playgroud)/app/views/foo/_some_partial.js.erb:
person = {
  last_name: '<%= person.last_name -%>'
}
Run Code Online (Sandbox Code Playgroud)