加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3 – Rails 3 link_to删除destory方法调用show方

发布时间:2020-12-17 02:01:06 所属栏目:百科 来源:网络整理
导读:嘿,我已经看到了几个帖子,但我仍然遇到调用问题:method = ‘删除’并定向到我的控制器的show方法. destroy方法按预期工作,因为它删除了注释,但在请求完成后,它会在GET上抛出404.这是代码: %= link_to 'delete',"/events/#{@event.id}/comments/#{comment.i
嘿,我已经看到了几个帖子,但我仍然遇到调用问题:method => ‘删除’并定向到我的控制器的show方法. destroy方法按预期工作,因为它删除了注释,但在请求完成后,它会在GET上抛出404.这是代码:

<%= link_to 'delete',"/events/#{@event.id}/comments/#{comment.id}.js",:confirm => 'Are you sure?',:method => :delete,:remote => true %>

这是控制器方法:

def destroy 
  @comment = @event.comments.find(params[:id])
  @comment.destroy
  redirect_to do |format|
    format.html # redirect_to @event,:notice => "comment deleted" }
    format.js { render 'destroy.js.erb' }
  end
end

我听说这可能是由于没有使用button_to,但我尝试使用button_to而不是link_to,但这也是做同样的事情.

我也听说过这可能会导致你在设置中使用jquery的方式遇到一些问题,但我觉得我对此表示怀疑,但这是我在jquery中调用的方式以防万一(application.html.erb) ):

<%= javascript_include_tag 'jquery-1.5.2.min.js','rails','application' %>
  <%= javascript_include_tag 'jquery-ui-1.8.17.custom.min.js' %>

当我观看rails服务器输出时,我看到它说:

Redirected to http://0.0.0.0:3000/events/1/comments/35
Completed 302 Found in 132ms
ACTION NAME application


Started GET "/events/1/comments/35" for 127.0.0.1 at Wed Feb 08 16:31:43 -0800 2012

AbstractController::ActionNotFound (The action 'show' could not be found for CommentsController):

谢谢您的帮助!

解决方法

Rails 3.1和更高版本为我们清理了很多… rails.js已经不见了. Jquery_ujs是gem的一部分,但该文件不应该在您的javascript目录中:
具体来说,我的jquery_ujs文件很旧,仍然“生活”在我的assets / javascript目录中.它仍然有不推荐使用的.live方法.删除文件!!
保持宝石’jquery-rails’,’?> 2.1’#REF: https://github.com/rails/jquery-ujs 保持// = require jquery和// = require jquery_ujs和// = require_tree. 在您的application.js文件中 确保更新gem和bundle install以获取最新的gem. 如果抛出javascript错误,就像我的“偷偷摸摸”的情况一样,其余的link_to js将无效.现在删除和确认对话框工作正常.一个古老的jquery_ujs是罪魁祸首.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读