Ruby on rails 如何在rails 4中渲染.js.erb文件中的部分?
在我的rails应用程序中,/assets/javascript文件夹中有dragdrop.js.erb。其中我有一个ajax块,它应该通过单击操作在div中呈现部分。我尝试了很多方法,但都没能奏效。任何帮助都将不胜感激 代码如下: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
$.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' %>")