如何渲染与 Rails 中的成员操作同名的 js.erb?
Posted
技术标签:
【中文标题】如何渲染与 Rails 中的成员操作同名的 js.erb?【英文标题】:How to render a js.erb with the same name as a member action in Rails? 【发布时间】:2017-05-12 21:28:30 【问题描述】:我认为这会自动进行,因为我已经设法为我的销毁操作这样做了,但没有激活 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 也是正确且有效的。
【问题讨论】:
不确定你真正的问题是什么,但如果你想让 rails 自动检测你的js.erb
文件,不要在它前面加上下划线,就好像它是一个部分
就是这样。谢谢。
【参考方案1】:
如前所述:我应该在命名模板时省略下划线。
【讨论】:
【参考方案2】:试试这个..
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
【讨论】:
以上是关于如何渲染与 Rails 中的成员操作同名的 js.erb?的主要内容,如果未能解决你的问题,请参考以下文章