【问题标题】:Following Ruby-on-Rails tutorial and getting 'destroy users' doesn't work遵循 Ruby-on-Rails 教程并获取“销毁用户”不起作用
【发布时间】:2012-03-28 06:36:52
【问题描述】:

我最近安装了 Ruby on Rails 3.2 并一直在尝试学习它。我一直在关注 RoR 3.0 教程(http://ruby.railstutorial.org/chapters/updating-showing-and-deleting-users#top),到目前为止进展顺利(是的,我知道有 3.2版本)。

目前我被困在第 10.4.2 节中,该节教如何添加链接以破坏用户。它说要添加代码

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

以及添加apps/view/layout/application/html/erb

<%= javascript_include_tag :defaults %>

正如教程所说,这似乎应该把它带到用户控制器中的destroy方法,但它对我不起作用,我不知道为什么。它创建的链接仅指向 /user/:id。我查看了 3.2 教程中的同一部分,它的方向完全相同(但没有 javascript 包含标记代码)。按照那个教程,我无法让它工作。所以我不确定它为什么不工作或如何让它工作。

所以我们很清楚,不是去这个 User 控制器中的 destroy 方法,而是去 /user/:id ,这是 show 方法。

【问题讨论】:

标签: ruby-on-rails ruby ruby-on-rails-3.2


【解决方案1】:

我的问题是我没有引用 jquery。添加//=jquery 修复它。

【讨论】:

    【解决方案2】:

    你好,你也可以试试这个:

    application.html.erb:

    <%= javascript_include_tag 'jquery_ujs' %>
    
    OR
    
    <%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js", "jquery.rails.js" %>
    

    你的链接代码应该是这样的:

    <%= link_to "<i class='icon-trash'></i> Delete".html_safe, user, :confirm => "Are you sure you want to delete this user? " + user.name + "?" ,:method => :delete%>
    

    你的控制器应该是这样的:

    def destroy
     @item = Item.find(params[:id])
     if @item.destroy
      redirect_to users_path, :notice => "Successfully deleted a user."
     else 
      redirect_to users_path, :notice => "Failed to delete a user."
     end
    end
    

    【讨论】:

      【解决方案3】:

      删除资源(在您的情况下为用户)需要将 jquery_ujs javascript 文件包含在页面中。看到调用“显示”操作是很常见的,因为没有 jquery_ujs 不会发送指示 HTTP DELETE 动词的隐藏数据。

      尝试显式插入 jquery_ujs,如下所示:

      <%= javascript_include_tag 'jquery_ujs' %>
      

      看看会发生什么。

      jquery_ujs 被设计为“...用于 Ruby on Rails 框架的不显眼的脚本支持文件,但不严格绑定到任何特定的后端。”。换句话说,它会扫描文档,查看特殊的 data-* 属性并根据这些属性执行各种操作,例如添加隐藏的 html 元素、执行 ajax 请求等。

      还要注意,为了使用 jquery_ujs,jquery 也应该被引用(之前)。

      希望这会有所帮助。

      【讨论】:

      • 这是有帮助的。谢谢。该教程在 Rails 3 或 Rails 3.2 教程中都没有提及这一点。非常感谢。
      猜你喜欢
      • 2022-06-13
      • 1970-01-01
      • 1970-01-01
      • 2014-02-08
      • 1970-01-01
      • 2012-09-26
      • 2015-06-13
      • 2016-01-19
      • 1970-01-01
      相关资源
      最近更新 更多