2016-12-28 7 views
0

私は破壊操作のために既にそれを行うことができたので、これは自動的に実行されると思うだろうが、JSは起動されていない。Railsでメンバーアクションと同じ名前のjs.erbをレンダリングするにはどうすればよいですか?

私のコントローラのアクションは、次のようになります。

def visability_toggle 
    @picture = Picture.find(params[:id]) 
    @picture.toggle! :visable 

    respond_to do |format| 
     format.js { render :action => 'visability_toggle' } 
    end 
    end 

そして、私は私のコントローラは、このようになります一致したいと思い、今の私pictures/_visability_toggle.js.erb用:

alert('Picture id: #{@picture.id}'); 

アクション自体は動作します。また、コントローラアクションでrender js: ...を追加したときに、このJSも正しく機能しました。

+1

ないでください、あなたの本当の問題はここにあるものが、あなたは自動的にあなたの 'js.erb'ファイルを検出するためのレールをしたい場合は、それはそれだった部分 – Viro

+0

たかのようにアンダースコアでそれを付加いけません。ありがとう。 –

答えて

0

前述のとおり、私はテンプレートに名前を付けるときにアンダースコアを残しておく必要がありました。

0

ちょうどあなたはRuby on Railsでを使用して、コントローラ内の別のjsファイルをrespond_toはどうすればよい

respond_to do |format| 
    format.js { :location => path_to_controller_method_url(argument) } 
end 

。これを試してみてください?

respond_to do |format| 
    format.js { 
     :template => "pictures/visability_toggle.js.erb", 
     :layout => false 
    } 
end 
関連する問題