Ruby on rails 3.1 Rails控制器方法响应为JSON

Ruby on rails 3.1 Rails控制器方法响应为JSON,ruby-on-rails-3.1,best-in-place,Ruby On Rails 3.1,Best In Place,我正在与一个GEM呼叫best_in_place合作: 新todo项目的创建通过以下方式完成: <%= best_in_place @user, :name, :type => :input, :nil => "Click me to add content!" %> respond_to :html, :json, :js def todo_item_fast_create @todo_list = TodoList.find(params[:id])

我正在与一个GEM呼叫best_in_place合作:

新todo项目的创建通过以下方式完成:

<%= best_in_place @user, :name, :type => :input, :nil => "Click me to add content!" %>

respond_to :html, :json, :js

def todo_item_fast_create
    @todo_list = TodoList.find(params[:id])
    @todo_item = @todo_list.todo_items.new(params[:todo_item])
    @todo_item.save
    respond_with @todo_item
end
:input,:nil=>“单击我添加内容!”%>
回复:html,:json,:js
def todo_项目_fast_创建
@todo_list=TodoList.find(参数[:id])
@todo_项=@todo_列表。todo_项。新建(参数[:todo_项])
@todo_item.save
用@todo\u项目回应
结束

响应代码是JSON,但是我想调用一个JS模板,这样我就可以操作DOM了,这可能吗?

您必须创建一个视图模板,文件名如下:
todo\u item\u fast\u create.JS.erb
调用该操作时将提供该文件。您可能必须将
:remote=>true
添加到调用此操作的按钮或链接

这是我的一个JS文件:new.JS.erb(在计划新导出时调用)

$(“#导出模式”).html(“”);
美元(“#导出模式”).model(‘显示’);
$(“#popover 1”).popover();

调用
escape\u javascript(render(“new”))
在js响应中呈现一个部分,我让js处理更新DOM。

Dosen不起作用,我得到了以下错误:ActionView::MissingTemplate(缺少模板todo\u list/todo\u item\u fast\u create,应用程序/todo\u item\u fast\u create使用{:locale=>[:en],:formats=>[:json],:handlers=>[:erb,:builder,:coffee]}。
$("#export_modal").html("<%= escape_javascript(render("new")) %>");
<!-- trigger the modal to open -->
$("#export_modal").modal('show');

$("#popover1").popover();