Rails: Too Few Arguments
controller, ruby-on-rails, ruby-on-rails-3, ruby-on-rails-3.2
Solution
You forgot to write `responds_to` block:
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
But I am suspicious about your index.html.erb, I don't think that will really work the way you think.
Problem
I am trying to get some Javascript working in my Rails app. I want to have my index page allow me to edit individual items on the index page, and then reload the index page upon edit. My index.html.erb page looks like: ``` <div id="index"> <%= render 'index' %> </div> ``` In my index.js.erb I have: ``` $('#index').html("<%=j render 'index' %>"); ``` and in my 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 ``` When I load the index page it is fine. As soon as click the edit button and it submits the form, I get the following: But if I go back and refresh the index page, the edits are saved. What am I doing wrong?