在搜索了一段时间并将其缩小到特定问题之后,我决定最终注册并向好人们寻求帮助。这是:
我创建了一个表单:
= form_for @note, :remote => true do |f|
在控制器中使用.build(或.create):
class NotesController < ApplicationController
before_filter :authenticate_user!
respond_to :html, :js
def create
@note = current_user.notes.build(params[:note])
if @note.save
respond_with @note, :location => root_url
end
end
,它会循环创建块两次。
如果我使用Note.new
或删除:remote => true
,那么一切正常,但两者的结合打破了一切。注意创建在控制台中工作正常,它不会在任何地方抛出任何错误,所以我被卡住了。
有人有任何建议吗?
答案 0 :(得分:0)
如果您使用的是远程true,则需要创建一个create.js.erb,因为默认情况下它会尝试渲染js.erb
答案 1 :(得分:0)
据我所知,您在新操作中创建了一个空白对象,并在保存到您的创建操作之前使用参数值填充该对象。试试这个:
class NotesController < ApplicationController
before_filter :authenticate_user!
respond_to :html, :js
def new
@note = Note.new
end
def create
@note = current_user.notes.new(params[:note])
respond_to do |format|
if @note.save
format.js
end
end
end
end