Rails对象删除或销毁方法

时间:2012-11-21 08:50:55

标签: ruby-on-rails methods destroy

我有

<%= link_to 'Destroy', project, :method => :delete, :data => { :confirm => 'Are you sure?'       } %>

但是当我在视图中单击“Destroy”时,它会显示项目(将我路由到/project/:id

# routes.rb
resources :users

resources :projects do
  resources :issues  
end

resources :issues

resources :sessions


root :to => "users#index"

match "/auth/:provider/callback" => "sessions#create"
match "/signout" => "sessions#destroy", :as => :signout


# projects_controller.rb
def destroy
  @project = Project.find(params[:id])
  @project.destroy

  respond_to do |format|
    format.html { redirect_to projects_url }
    format.json { head :no_content }
  end
end

但“编辑”效果很好。 你知道吗,问题在哪里?

并且有一个aplication.html.erb

#aplication.html.erb
<!DOCTYPE html>
<html>
<head>
  <title>Project manager</title>
  <%= stylesheet_link_tag    "application", :media => "all" %>
  <%= javascript_include_tag "application" %>
  <%= csrf_meta_tags %>
</head>
<body>

<% if current_user %>
    Welcome <%= current_user.username %>
    <%= link_to "Signout", signout_path %>
<% else %>
    <%= link_to "Sign in with twitter", "/auth/twitter" %>
<% end %>
<%= yield %>

</body>
</html>

最后是aplication.js

#aplication.js
= require jquery
//
= require jquery_ujs
//
= require_tree .
//
= require prototype_nested_form
//
= require jquery_nested_form

= require bootstrap

PS:服务器重启没有帮助

2 个答案:

答案 0 :(得分:1)

我已经解决了。我不知道为什么,但是当我删除这两行时

#aplication.js
= require jquery
= require jquery_ujs

一切正常。

答案 1 :(得分:0)

试试这个

<%= link_to 'Destroy', project, :method => :delete, :confirm => 'Are you sure?' %>

查看文档http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to

<强>更新 destroy linkdelete method,因此当您检查show时,网址应该看起来像show actionget methodrake routes。 destroy和show方法都显示相同的url但方法不同。为了显示它是一个获取和销毁它是一个删除方法。

相关问题