我正在尝试从 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 : accessing an instance variable in a js. erb 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/946537/