我正在尝试从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文件中渲染部分内容时遇到问题,并且我正在尝试找出原因。
答案 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文件中不再有渲染部分。我今天刚刚发现了这个。