28

RailsアプリケーションでJavascriptを動作させようとしています。引数があまりありません

インデックスページで個々のアイテムを編集し、編集時にインデックスページをリロードすることができます。マイindex.html.erbページはのように見える

:私のindex.js.erbで

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

私が持っている:

$('#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 

インデックスページを読み込むと問題ありません。すぐに編集ボタンをクリックし、それがフォームを送信すると、私は次の取得:

enter image description here

しかし、私は戻って、インデックスページを更新する場合は、編集内容が保存されます。私は間違って何をしていますか?

答えて

89

あなたは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について疑わしいです、私はそれが本当にあなたが思うように動作するとは思いません。

+4

'responds_to do' – clyfe

+0

ありがとうございます。 :) – Matzi

+0

@Matzi私は 'responds_to do | format |'を使って動作させる必要がありました。 –

関連する問題