Ruby on rails 如何在rails 4中渲染.js.erb文件中的部分?

Ruby on rails 如何在rails 4中渲染.js.erb文件中的部分?,ruby-on-rails,ruby,Ruby On Rails,Ruby,在我的rails应用程序中,/assets/javascript文件夹中有dragdrop.js.erb。其中我有一个ajax块,它应该通过单击操作在div中呈现部分。我尝试了很多方法,但都没能奏效。任何帮助都将不胜感激 代码如下: $.ajax({ type: "GET", url: "<%= Rails.application.routes.url_helpers.cookbooks_path %>", success: function(res

在我的rails应用程序中,/assets/javascript文件夹中有dragdrop.js.erb。其中我有一个ajax块,它应该通过单击操作在div中呈现部分。我尝试了很多方法,但都没能奏效。任何帮助都将不胜感激

代码如下:

 $.ajax({  
   type: "GET",    
   url: "<%=  Rails.application.routes.url_helpers.cookbooks_path %>",
   success: function(resp){
  $("#property").load("<%= escape_javascript (render :partial => 'recipes/package_form') %>") 
   }
$.ajax({
键入:“获取”,
url:“”,
成功:功能(resp){
$(“#属性”).load(“‘配方/包装形式’%>”)
}

您的问题是,您试图在
资产
中使用
渲染

您应该将
.js.erb
文件移动到
app/views


这里还有一些类似的问题:


  • 资产管道

    首先,您需要确保不要直接在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
    
    --


    这应该对你有用

    发布你尝试过的相关代码,这样我们就可以帮助你我已经更新了代码错误/异常是什么?无论如何,有什么特殊原因让
    .js.erb
    保留在
    资产/javascript
    中而不是
    应用程序/视图
    未定义的方法
    呈现#(在/home/cookmaster/workspace/test/app/assets/javascripts/dragdrop.js.erb中)`
    #app/views/cookbooks/index.js.erb
    $("#property").html("<%=j render :partial => 'recipes/package_form' %>")