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

我试图从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上得到一个nil对象错误. (我知道Person.find(1)返回一个对象)

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

最佳答案
以下适用于我:

在/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 -%>'
}

转载注明原文:javascript – rails:访问js.erb文件中的实例变量 - 代码日志