在添加书目表单中,我创建了一个添加作者表单,该表单使用json添加了作者。
这很好。
但是,当作者添加到数据库时,我想显示一条成功消息。
这是我的代码:
def create @auteur = Auteur.new(params_auteur) respond_to do |q| if @auteur.save format.html{ redirect_to @auteur, notice: 'Auteur added successfully.'} format.js{} format.json{ render json: @auteur, status: :created, location: @auteur } else format.html{ render action: "new"} format.json{ render json: @auteur.errors, status: :unprocessable_entity} end end end
然后,我添加了一个views/auteurs/create.js.erb
包含以下代码的文件:
$("<%= escape_javascript(render @auteur) %>").appendTo(".bloque_ajoute_auteur");
我的错误消息是在(成功)将新作者插入数据库后生成的:
Completed 500 Internal Server Error in 10ms (ActiveRecord: 1.6ms) ArgumentError (too few arguments): app/controllers/administration/auteurs_controller.rb:23:in `format' app/controllers/administration/auteurs_controller.rb:23:in `block in create' app/controllers/administration/auteurs_controller.rb:21:in `create'
第21行是response_to块的开始;第23行是format.html{ redirect_to @auteur, notice: 'Auteur ajouté.'}
我以为我已经密切关注了这一点:http : //guides.rubyonrails.org/working_with_javascript_in_rails.html#server-side-concerns
应该是respond_to do |format|
。一旦到达format
没有声明的第一个实例,它将失败。