为什么Delete链接不能在这个Ruby on Rails项目中工作?
Why Delete link doesn't work in this Ruby on Rails project?
我正在练习Michael Hartl的RoR教程项目:http://ruby.railstutorial.org/ruby-on-rails-tutorial-book
我使用Ruby 1.9.2和Rails 3.1在Ubuntu 11.04与Apache和MySQL。
我现在在这里:http://ruby.railstutorial.org/chapters/updating-showing-and-deleting-users#sec:destroying_users(在那里我有5个用户列表和一个删除链接为他们每个人,我是管理员)。
这是应该起作用的删除链接:
<%= link_to "delete", user, :method => :delete, :confirm => "You sure?",
:title => "Delete #{user.name}" %>
但是当我鼠标移到上方时,我看到这个:"localhost/users/2"(例如)当我点击删除链接时,它会引导我到用户的个人资料。我没有得到任何确认窗口,也没有采取任何行动(删除)。就像他们个人资料的链接,仅此而已。我使用的是Chrome,但在Firefox中也是一样的。
这是我的:
1)安装了gem "jquery-rails"
2)applications.js(来自app/assets/javascripts)有这些行:
//= require jquery
//= require jquery_ujs
//= require_tree .
3) application.html。Erb(来自app/views/layouts)有这些行:
<%= javascript_include_tag :defaults %>
<%= csrf_meta_tags %>
在view source中我看到:
<script src="/assets/defaults.js" type="text/javascript"></script>
<meta content="authenticity_token" name="csrf-param" />
<meta content="njPO91rB7p3EtTblD4jf4rkCVt+M76SKUt0rQhHc+qY=" name="csrf-token" />
在users_controllers4)。rb(从app/controllers)我有:
before_filter :authenticate, :only => [:index, :edit, :update, :destroy]
before_filter :correct_user, :only => [:edit, :update]
before_filter :admin_user, :only => :destroy
def destroy
User.find(params[:id]).destroy
flash[:success] = "User destroyed."
redirect_to users_path
end
private
def admin_user
redirect_to(root_path) unless current_user.admin?
end
5)的路线。(从配置)我有:
resources :users
Delete链接有什么问题?我搜索了StackOverflow的答案,但显然我找不到一个适合我的情况。
在同一个RoR项目上,使用Ajax的关注/取消关注按钮工作得很好(现在不能在这里发布第二个链接,因为我刚刚注册到SO)。
那么,为什么链接不起作用呢?是Javascript问题还是其他我没看到的问题?
谢谢。
尝试使用
<%= javascript_include_tag "application" %>
代替:defaults
尝试将其切换为button_to "delete"而不是link_to "delete"当没有其他方法时,这对我很有效
确保你的路由中有resources :users
。rb文件。这将为您提供基本的CRUD路由。
在我目前的Rails 3.1项目中,我使用
<%= link_to 'Destroy', rest_datatype, :confirm => 'Are you sure?', :method => :delete %>
我最近遇到了这个问题。试着查看
config/application.rb:
让我们看看是否有字符串
Rails.logger = Logger.new(STDOUT)
因此,js库不会被编译或加载。因此,方法method:: delete
不起作用。
- Ruby on Rails javascript getting truncated
- 在ruby on rails中使用jquery getJSON获取数据
- Ruby On Rails应用程序与angularJS关于AJAX
- Angular JS/Rube-on-Rails-控制器未识别错误
- ruby on rails:用于不同页面的选项卡
- Ruby On Rails Ajax 提交提交两次
- Ruby on Rails - 引导旋转木马按钮不起作用
- 按索引迭代数组时,单击提交按钮Ruby on Rails
- 如何将.js从视图移动到单独的资产 - Ruby On Rails
- 如何在Ruby on Rails中集成Arbor.js
- geolocation with javascript and ruby on rails
- Ruby on Rails 4:在 Rails Web 应用程序中添加 Javascript 文件时遇到问题
- Window.onload 未被调用 [Ruby on Rails] [Vanilla Javascript]
- Rails应用程序中的每个javascript文件都需要.on('page:change',初始化)吗?
- 如何在Ruby on Rails会话过期时重新加载或刷新页面
- 重命名上传的文件Ruby On Rails
- Ruby on Rails - grouped_collection_select error
- 带有jquery.min.map的Ruby on Rails:未能加载资源状态406
- Ruby on rails-更新ajax的PUT方法
- Rails on iOS - action "show"无法在:method =>:删除