我正在尝试建立删除项目的链接......
<% @projects.each do |project| %>
<h2><%= project.name %> (<%= project.videos.size %>)</h2>
<%= link_to("Delete!", {:controller=>'projects', :action=>'destroy', :id=>project.hashed_id}, {method: :delete} ) %>
<% end %>
无论我做什么,我都会得到一个get
请求,所以我最终会看到项目/节目视图。 Urrrgh!
我的控制器:
def destroy
@project = Project.where( :hashed_id=> params[:id]).first.destroy()
flash[:notice]= "Project deleted"
redirect_to(:action=>'index')
end
我错过了什么?
PS:我找到this,但解决方案对我不起作用。
更新
$ rake routes
Prefix Verb URI Pattern Controller#Action
root GET / pages#home
projects GET /projects(.:format) projects#index
POST /projects(.:format) projects#create
new_project GET /projects/new(.:format) projects#new
edit_project GET /projects/:id/edit(.:format) projects#edit
project GET /projects/:id(.:format) projects#show
PATCH /projects/:id(.:format) projects#update
PUT /projects/:id(.:format) projects#update
DELETE /projects/:id(.:format) projects#destroy
更新2 这是我得到的错误:
答案 0 :(得分:1)
粘贴rake routes
的输出。我怀疑路线不匹配,这就是它落到#show
的原因。
确保您也安装了jquery-rails。
请参阅Delete / Destroy is not working in rails 3 with jQuery。
通常,请确保您已包含所有必需的javascript文件。
答案 1 :(得分:0)
做这样的事情:
控制器:
def destroy
Flower.find(params[:id]).destroy
redirect_to :action => 'index'
end
查看:
<%= link_to 'Destroy', flower_path(flower), method: :delete, data: { confirm: 'Are you sure?' } %>
答案 2 :(得分:0)
试试这个:
<%= link_to 'Destroy', project_path(project), method: :delete %>
它应该工作。 如果没有,请将服务器日志粘贴到注释中或尝试检查生成的路径。
或者查看你的导轨c:
app.project_path(Project.first)
祝你好运!