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

时间:2009-06-03 19:02:26

标签: javascript ruby-on-rails ruby ajax

我正在尝试从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文件中渲染部分内容时遇到问题,并且我正在尝试找出原因。

2 个答案:

答案 0 :(得分: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
/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 -%>'
}

答案 1 :(得分:0)

js.erb文件中不再有渲染部分。我今天刚刚发现了这个。

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