【问题标题】:link_to with :method=>:delete not working in Rails 3带有 :method=>:delete 的 link_to 在 Rails 3 中不起作用
【发布时间】:2012-01-07 18:00:40
【问题描述】:

我无法获得我的 link_to 助手,使用 :method => :delete 来销毁对象

我的应用是这样的

应用程序.html.erb

    <!--<!DOCTYPE html>
    <html>
    <head>
      <title>Taskprogect</title>
      <%= stylesheet_link_tag :all %>
    <%= javascript_include_tag :defaults %>
    <%= csrf_meta_tag %>
    </head>
    <body>
    <%= yield %>
    </body>
    </html>-->
    <h1>Application layout!</h1>
    <%= yield %>

tasks_controller.rb

      def destroy
        Task.find(params[:id]).destroy
        flash[:success] = "Task destroyed."
        redirect_to tasks_path
      end

index.html.erb

  <%= link_to "delete", task, :method => :delete, :confirm => "You sure?",
  :title => "Delete #{task.name}" %>

routes.rb

    Taskprogect::Application.routes.draw do

      resources :projects
      resources :tasks

    end

而且 link_to 不工作,在以前工作的应用程序中,也许我在 routes.rb 中做了坏事?

有什么想法吗?谢谢!

是否可以添加一些确认信息,例如“您确定吗?”到 button_to 助手?

【问题讨论】:

  • 为什么大部分布局被注释掉了? task 在哪里定义(因为它不是实例变量)?点击链接后会发生什么?

标签: ruby-on-rails ruby-on-rails-3


【解决方案1】:

你的布局模板的整个头部被注释掉了,这意味着javascript包含被注释掉了,这意味着为:method =&gt; :delete链接添加魔法的JS没有运行。

【讨论】:

    【解决方案2】:

    当页面实际呈现时,您能否在 Web 浏览器中查看 html 源代码? 如果您使用的是 jQuery,您应该会看到对 jQuery 源文件的引用。

    for example:
    
    <script src="/public/javascripts/jquery.js?body=1" type="text/javascript"></script>
    <script src="/public/javascripts/jquery_ujs.js?body=1" type="text/javascript"></script>
    

    然后,检查这些物理jquery源文件是否存在?那些可能已经丢失了。如果是这种情况,只需将那些丢失的文件复制到它们的预期位置即可。

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-19
      • 1970-01-01
      • 1970-01-01
      • 2011-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-16
      相关资源
      最近更新 更多