ruby-on-rails – 如何在rails 4中渲染.js.erb文件中的部分文件
发布时间:2020-12-17 04:01:54 所属栏目:百科 来源:网络整理
导读:在我的rails应用程序中,我在/ assets / javascript文件夹中有dragdrop.js.erb.其中我有一个ajax块,它应该在div中使用on click动作呈现部分.我尝试了很多东西,但我无法让它发挥作用.任何帮助,将不胜感激. 这是代码: $.ajax({ type: "GET",url: "%= Rails.app
在我的rails应用程序中,我在/ assets /
javascript文件夹中有dragdrop.js.erb.其中我有一个ajax块,它应该在div中使用on click动作呈现部分.我尝试了很多东西,但我无法让它发挥作用.任何帮助,将不胜感激.
这是代码: $.ajax({ type: "GET",url: "<%= Rails.application.routes.url_helpers.cookbooks_path %>",success: function(resp){ $("#property").load("<%= escape_javascript (render :partial => 'recipes/package_form') %>") } 解决方法
资产管道
首先,您需要确保不直接在javascript中使用任何Rails动态路径助手. 问题是,如果您预先编译资产管道,您通常会发现这些动态路径帮助程序无法正常工作.尽管它没有“错误” – 我倾向于将Rails后端代码与前端完全分开,以确保应用程序的多功能性: #app/assets/javascripts/application.js $(document).on("click",".element",function(){ $.ajax({ type: "GET",url: "/cookbooks" }); }); 这将向您的控制器后端发送“裸”Ajax请求(没有参数/正文): #app/controllers/cookbooks_controller.rb Class CookbooksController < ApplicationController def index @cookbooks = Cookbook.all respond_to do |format| format.html format.js #-> loads /views/cookbooks/index.js.erb end end end 这里的技巧是你现在可以使用渲染部分所需的参数来填充index.js.erb文件: #app/views/cookbooks/index.js.erb $("#property").html("<%=j render :partial => 'recipes/package_form' %>") – 这应该适合你 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |