我刚注意到我的应用程序中的所有各种删除链接现在只是显示页面。这个应用程序从rails 2.3.8开始,现在是rails 3.2.17
rails代码示例:
控制器,
def destroy
@group = Group.find(params[:id])
@group.destroy
respond_to do |format|
format.html { redirect_to(groups_url) }
format.xml { head :ok }
end
end
和
def destroy
@link = Link.find(params[:id])
@link.destroy
respond_to do |format|
format.html { redirect_to(links_url) }
end
end
生成:
HTML,
<a rel="nofollow" data-method="delete" data-confirm="Sure?" href="/groups/35">
x
</a>
和
<a rel="nofollow" data-method="delete" data-confirm="Sure?" href="/links/8">
x
</a>
我注意到我有,
= javascript_include_tag "application"
在我的应用程序布局模板中,我尝试将其更新为
= javascript_include_tag :defaults
但它没有帮助解决这个问题,仍然会显示页面而不是删除,更糟糕的是,这样做会阻止我的所有其他javascript工作!例如让用户继续搜索自动字段,日期选择日历等
我的application.js文件有:
//= require jquery-1.7.2.min
//= require jquery-ui-1.8.22.custom.min
//= require default_on_first_input_field
//= require row_shading
//= require long_or_short_details
//= require sortable_hook
//= require date-picker
//= require_self
答案 0 :(得分:4)
答案是我需要添加这一行:
//= require jquery_ujs
到我的js清单。这解决了它。我的清单现在看起来像:
// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
//
//= require jquery-1.7.2.min
//= require jquery-ui-1.8.22.custom.min
//= require jquery_ujs
//= require default_on_first_input_field
//= require row_shading
//= require long_or_short_details
//= require sortable_hook
//= require date-picker
//= require_self