remote:用于执行新操作的form_for的true选项,但不是create action
更新:
这已经解决了! 这是一个困难的,因为它根本不容易调试。 但是注意到我在表单标签中有一个表单标签,我亲切的“回答者”指出,无论这是否是问题的根本原因,都需要修复。 请记住,我同意他的说法, nested attributes
绝对是这个方法的一部分,但是因为这是一个学校项目,我现在选择将内部forms移到外部forms之外它按照我的预期行事。 这涉及到更改下面看到的一些代码。 但我不会发布新代码,因为我再次同意nested attributes
是这种情况下的方法。 当我有空的时候,这将成为我这个项目的下一个目标。
原始问题:
我正在使用Rails 4,我有这样的嵌套资源:
resources :data do resources :todo_items end
在datum
对象的编辑页面中,我打算让用户能够通过ajax将todo_item
添加到datum
对象。 当您单击“添加待办事项”按钮时,我的表单用于创建新的todo_item
,并且在填写必填字段后,用户可以单击添加,我打算发出另一个请求,以显示todo_item
作为部分,包括一个复选框,供用户显示是否完整。 新表单很好,但是当我单击添加按钮以显示新创建的todo_item
时,我收到一个ActionController::UnknownFormat
错误。 这是我正在使用的代码:
应用程序/视图/数据/ _form.html.erb
... ...
应用程序/控制器/ todo_items_controller.rb
class TodoItemsController < ApplicationController def new @datum = Datum.find(params[:datum_id]) @todo = TodoItem.new respond_to do |format| format.js end end def create @datum = Datum.find(params[:datum_id]) @todo = @datum.todo_items.create!(todo_item_params) respond_to do |format| format.js end end private def todo_item_params params.require(:todo_item).permit(:task, :content, :done) end end
app / views / todo_items / _form.html.erb(’new’表单)
<div id="-" class="panel todo-item">