javascript - 将变量传递给自定义模板 - rails

标签 javascript ruby-on-rails ruby

在我的 Controller 中,我在变量 @template 中存储了一些 View ,设置了一个测试变量并期望一些 js 响应

@template = ActionView::Base.new('app/views/devise/sessions', {}, ActionController::Base.new).render(file: 'new').to_s
@test="test"
respond_to do |format|
    format.js {render 'layouts/some_file.js.erb'}
end

然后我将此变量传递给 some_file.js.erb 并调用:

$("body").append('<%= escape_javascript(@template) %>');

假设在@tempate中我放了<%= @test %>,那么@test为null。为什么会这样?

最佳答案

根据文档 (http://apidock.com/rails/ActionView/Base/new/class),ActionView::Base.new 的第二个参数是 assigns,它看起来像 locals 选项。

@template = ActionView::Base.new('app/views/devise/sessions', { local_var: 21 }, ActionController::Base.new).render(file: 'new').to_s

并且变量 local_var 应该在相应的部分可用。

关于javascript - 将变量传递给自定义模板 - rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21998288/

相关文章:

javascript - 谷歌翻译付费API key 问题

javascript - 如何添加抖动以避免 D3 中的过度绘制?

ruby-on-rails - 用于反向拍卖类型应用程序的 Ruby on Rails

ruby - 为 put 设置行尾字符

jquery - js/jquery 覆盖流效果

ruby-on-rails - Gitlab CE 不发送电子邮件

mysql - Rails find_by_sql 问题

ruby - 这个方法在ruby中如何使用自己的方法呢?

ruby - vagrant 管理主机 dhcp

javascript - 删除 d3 中的特定 svg