【问题标题】:Delete links stopped working data-method='delete' but goes to show page删除链接停止工作 data-method='delete' 但转到显示页面
【发布时间】:2014-09-25 13:20:54
【问题描述】:

我刚刚注意到,我的应用程序中的所有各种删除链接现在都只是显示页面。此应用程序从 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

【问题讨论】:

  • 输入 puts YAML::dump(params[:id])
  • 我发现了类似的问题:stackoverflow.com/questions/9657295/…
  • 它似乎永远不会到达destroy方法,因为日志显示Started GET "/links/362" for 127.0.0.1 at 2014-08-02 09:36:17 -0400 Processing by LinksController#show as HTML Parameters: {"id"=&gt;"362"}
  • 你可以试试:

标签: ruby-on-rails hyperlink destroy custom-data-attribute


【解决方案1】:

答案是我只需要添加这一行:

//= 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

【讨论】:

    猜你喜欢
    • 2012-04-22
    • 1970-01-01
    • 2012-07-05
    • 2022-01-22
    • 1970-01-01
    • 2016-12-27
    • 2019-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多