Подтвердить что ты не робот

Слишком мало аргументов

Я пытаюсь заставить Javascript работать в моем приложении Rails.

Я хочу, чтобы моя индексная страница позволяла мне редактировать отдельные элементы на индексной странице, а затем перезагружать страницу индекса при редактировании.

Моя страница index.html.erb выглядит так:

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

В моем index.js.erb у меня есть:

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

и в моем holder_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

Когда я загружаю страницу индекса, это нормально. Как только нажмите кнопку редактирования и отправьте форму, я получаю следующее:

enter image description here

Но если я вернусь и обновляю индексную страницу, изменения будут сохранены. Что я делаю не так?

4b9b3361

Ответ 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, я не думаю, что это действительно будет работать так, как вы думаете.