javascript - rails : accessing an instance variable in a js. erb 文件

标签 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 文件中的部分内容时遇到了问题,我正在尝试找出原因。

最佳答案

以下对我有用:

/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/

相关文章:

javascript - 将 javascript 值添加到 Ruby Hash 中

ruby-on-rails - 如何在 Rails 模型中创建多个类和实例方法

ruby-on-rails - Heroku Deploy - Gem::Installer::ExtensionBuildError: 错误:无法构建 gem native 扩展

javascript - 通过 react 路由器进行路由不起作用

javascript - 调整溢出大小以适应 div 内部

javascript - 如何在 if else 语句中使用 jquery css ('display' , 'block' ) 和 css ('display' , 'none' )

ruby-on-rails - rails : rubocop disable Class has too many lines error

ruby-on-rails - Ruby on Rails : Long list of migration files, 常见吗?

javascript - 如何在js中使用smtp以表单形式发送邮件

ruby-on-rails - 运行迁移时未初始化的常量 #{MIGRATION_NAME}::#{TABLE_NAME}