gpt4 book ai didi

ruby-on-rails-3 - Rails 3 link_to删除销毁方法调用显示方法?

转载 作者:行者123 更新时间:2023-12-03 00:08:33 27 4
gpt4 key购买 nike

嘿,我已经看过几篇关于此的文章,但我仍然在调用 :method => 'delete' 并被定向到 Controller 的 show 方法时遇到问题。 destroy 方法按预期工作,因为它删除了注释,但在请求完成后,它在 GET 上抛出 404。这是代码:

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

这是 Controller 方法:

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 文件很旧,但仍然“存在”在我的 asset/javascript 目录中。它仍然有 .live 方法,但已被弃用。删除文件!!
保留 gem 'jquery-rails', '~> 2.1' # REF: https://github.com/rails/jquery-ujs保留//= require jquery 和//= require jquery_ujs 和//= require_tree 。在您的 application.js 文件中确保更新 gem 和捆绑安装以获得最新的 gem。如果像我的“偷偷摸摸”情况那样抛出一个 javascript 错误,则 link_to js 的其余部分将无法工作。现在删除和确认对话框工作正常。罪魁祸首是旧的 jquery_ujs。

关于ruby-on-rails-3 - Rails 3 link_to删除销毁方法调用显示方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9203827/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com