我正在尝试在 Rails 中发出 ajax 请求。我想要做的是从我的javascript调用控制器中的一个动作,而不必为其创建一个视图页面。例如
class BooksContoller < ApplicationController
respond_to :html, :json, :xml
def myaction
respond_to do |format|
format.js { # do stuff }
end
end
end
在 routes.rb 文件中,我添加了以下内容
match '/books/myaction' => 'books#myaction'
这是我正在进行的 ajax 调用
$.ajax(
{
type: "GET", url: "/books/myaction.js",
success: function(data){
console.log(data);
}
});
Rails 抱怨找不到视图
ActionView::MissingTemplate with {:locale=>[:en], :formats=>[:js, :html], :handlers=>[:erb, :builder, :coffee, :haml]}
显然,如果我创建一个相应的 myaction.html.haml 文件,它会很高兴并且一切正常。但是我不想为这个动作创建一个视图,因为这只会用于 ajax 请求。有没有办法在不为其创建视图的情况下对自定义操作进行 ajax 调用?