Javascript 将变量传递到自定义模板-rails
在我的控制器中,我将变量Javascript 将变量传递到自定义模板-rails,javascript,ruby-on-rails,ruby,Javascript,Ruby On Rails,Ruby,在我的控制器中,我将变量@template存储在一些视图中,设置一个测试变量并期望得到一些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.e
@template
存储在一些视图中,设置一个测试变量并期望得到一些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
然后我将此变量传递给某个_file.js.erb
,并调用:
$("body").append('<%= escape_javascript(@template) %>');
$(“正文”)。附加(“”);
假设在我输入的
@tempate
中,@test
为空。为什么会这样?在文档()之后,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\u var
应该在相应的部分中可用。因为您的上下文不提供对@test variableAh的访问。好吧,我更了解,有没有办法做到这一点?阅读文档:第二个参数是assign,听起来像是一个hint感谢您,它工作了!你能把它贴出来作为答复吗