如何在Rails中呈现与成员操作同名的js.erb?

时间:2016-12-28 15:09:37

标签: ruby-on-rails ujs

我认为这会自动进行,因为我已经设法为我的destroy动作做了这样做,但没有激活JS。

我的控制器操作如下所示:

  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是正确的并且有用。

2 个答案:

答案 0 :(得分:0)

如上所述:在命名我的模板时,我应该留下下划线。

答案 1 :(得分:0)

试试吧..

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

如何使用Ruby on Rails响应控制器中的另一个js文件?

respond_to do |format|
    format.js {
       :template => "pictures/visability_toggle.js.erb", 
       :layout => false
    }
end