Rails 3:remote =>真实的。创建重复的调用来创建

时间:2013-09-13 06:40:23

标签: javascript ruby-on-rails ajax forms

在搜索了一段时间并将其缩小到特定问题之后,我决定最终注册并向好人们寻求帮助。这是:

我创建了一个表单:

= 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,那么一切正常,但两者的结合打破了一切。注意创建在控制台中工作正常,它不会在任何地方抛出任何错误,所以我被卡住了。

有人有任何建议吗?

2 个答案:

答案 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