论据太少(Too Few Arguments)

2019-06-25 19:00发布

我试图让一些JavaScript在我的Rails应用程序的工作。

我希望有我的索引页让我的索引页上编辑单个项目,然后在编辑重新加载索引页。

我index.html.erb页面的样子:

<div id="index">
<%= render 'index' %>
</div>

在我index.js.erb的,我有:

$('#index').html("<%=j render 'index' %>");

在我holders_controller:

def edit
  holder = Holder.find(params[:id])
 end

def update
  @holder = Holder.find(params[:id])
  if @holder.update_attributes(params[:holder])
    format.html { redirect_to holders_path } #, flash[:success] = "holder updated")
    ## ^---Line 28 in error
    format.js
  else
    render 'edit'
  end
end

当我加载索引页它是好的。 只要单击编辑按钮并提交表单时,我得到如下:

但是,如果我回去,并刷新索引页,编辑内容被保存。 我究竟做错了什么?

Answer 1:

你忘了写responds_to块:

def update
  @holder = Holder.find(params[:id])
  if @holder.update_attributes(params[:holder])
    respond_to do |format|
      format.html { redirect_to holders_path } #, flash[:success] = "holder updated")
      format.js
    end
  else
    render 'edit'
  end
end

但我怀疑你的index.html.erb,我不认为这会真正的工作,你的思维方式。



文章来源: Too Few Arguments