2011-05-26 99 views
1

我的销毁链接不起作用。导轨3销毁链接不工作

我的索引视图:

<div id="konkurrancer"><%= render 'konkurrencer', :remote => true %></div><%= debug(params) %> 

我konkurrencer部分:

<% for konkurrancer in @konkurrancers %> <%= link_to 'Destroy', [:admin, konkurrancer], :method => :delete %> <% end %> 

而且我得到这个错误:

No route matches {:action=>"show", :controller=>"admin/konkurrancers", :id=>#<Konkurrancer id: 41, name: " Vind 16.000 kr., til Bilka, Føtex eller Netto 

编辑错误鉴于:

ActionController::RoutingError in Admin/konkurrancers#index 

Showing C:/Rails/konkurranceportalen/app/views/admin/konkurrancers/_konkurrencer.html.erb where line #59 raised: 

No route matches {:action=>"show", :controller=>"admin/konkurrancers", :id=>#<Konkurrancer id: 41, name: " Vind 16.000 kr., til Bilka, Føtex eller Netto", banner1: "http://partner.smartresponse-media.com/42/1092/1210...", banner2: "http://partner.smartresponse-media.com/42/1092/1210...", vaerdi: 16000, note: "", udtraekkes: "2011-05-31 22:00:00", created_at: "2011-05-04 12:35:44", updated_at: "2011-05-05 14:55:35", cached_slug: "vind-16000-kr-til-bilka-f\xC3\xB8tex-eller-netto", tid: "4 min", form: "Quiz", rating_score: 5, ratings: 1, rating: 5, photo_file_name: nil, photo_content_type: nil, photo_file_size: nil, photo_updated_at: nil, photo2_file_name: nil, photo2_content_type: nil, photo2_file_size: nil, photo2_updated_at: nil, image_remote_url: "", image_remote_url_2: "">} 

Extracted source (around line #59): 

56:  <td><%= konkurrancer.form %></td> 
57:  <td><%= link_to 'Vis', admin_konkurrancer_path(konkurrancer.id) %></td> 
58:  <td><%= link_to 'Redigere', {:action => 'edit', :id => konkurrancer.id}, :class => 'action edit' %></td> 
59:  <td> <%= link_to 'Destroy', admin_konkurrancer_path(konkurrancer), :method => :delete %> </td> 
60: 
61: 
62:  </td> 

耙路线:

delete_multiple_admin_konkurrancers DELETE /admin/konkurrancers/delete_multiple(
.:format) {:action=>"delete_multiple", :controller=>"admin/konkurrancers"} 
       admin_konkurrancers GET /admin/konkurrancers(.:format) 
      {:action=>"index", :controller=>"admin/konkurrancers"} 
            POST /admin/konkurrancers(.:format) 
      {:action=>"create", :controller=>"admin/konkurrancers"} 
      new_admin_konkurrancer GET /admin/konkurrancers/new(.:format) 
      {:action=>"new", :controller=>"admin/konkurrancers"} 
      edit_admin_konkurrancer GET /admin/konkurrancers/:id/edit(.:forma 
t)  {:action=>"edit", :controller=>"admin/konkurrancers"} 
       admin_konkurrancer GET /admin/konkurrancers/:id(.:format) 
      {:action=>"show", :controller=>"admin/konkurrancers"} 
            PUT /admin/konkurrancers/:id(.:format) 
      {:action=>"update", :controller=>"admin/konkurrancers"} 
            DELETE /admin/konkurrancers/:id(.:format) 
      {:action=>"destroy", :controller=>"admin/konkurrancers"} 

我的路由文件:

namespace :admin do 
resources :tags 
resources :kategoris 
resources :konkurrancers do 
     collection do 
     delete :delete_multiple 
     end 
    end 
resources :reklamers 
    end 

回答

2

你可能需要改变它的东西如:

<%= link_to 'Destroy', :action => 'destroy', :id => konkurrancer.id, :method => :delete %> 

,或者如果您使用REST风格的路线,是这样的:

<%= link_to 'Destroy', delete_konkurrancer(:id => konkurrancer.id), :method => :delete %> 
+0

它只是呈现显示操作。我的网址是5?method = destroy – 2011-05-26 07:22:00

+0

我已经尝试了两种解决方案 - 他们不工作。第一个呈现显示页面,第二个呈现路线错误 – 2011-05-31 15:59:28

+0

您没有正确的路线。你需要像“scope:path =>'/ your_path',:controller =>:your_controller做 \t删除'your_url'=>:destroy,:as =>'destroy_konkurrancer' end”in your routes.rb for第二个工作(适当地修理your_)。 – Spyros 2011-05-31 16:23:55

6

如果你使用RESTful资源,试试这个:

<%= link_to 'Destroy', [:admin, konkurrancer], :method => :delete %> 
+0

我的路线是:命名空间:管理员做资源:konkurrancers做 集合所做 删除:delete_multiple 结束 结束 – 2011-05-26 09:00:49

+0

我已经试过您的解决方案,但它没有工作 – 2011-05-26 09:01:20

+0

@Rails初学者:什么样的错误你好吗?由于你的路由是命名空间的,你试过这个:'%= link_to'Destroy',[:admin,konkurrancer],:method =>:delete%>'? – Kris 2011-05-26 10:39:42

0

当与命名空间控制器和路线的工作,你必须使用命名空间模型,以便为link_to助手才能正常工作。

当我为模型编写额外的管理页面时,我还在admin命名空间中生成了一些包装模型。

例如,在应用程序/模型/管理/ person.rb

class Admin::Person < Person  
end 

使各种形式和环节,要简单得多。

0

在RESTful资源的情况下,试试这个:

{<%= link_to 'Destroy', [:admin, konkurrancer], :method => :delete %>} 

,并使用相应的JavaScript帮手。

这是rails-helper的问题。你需要适当地使用rails.js。如果你使用prototype.js然后在rails.js中,你需要原型助手方法,如果你使用jquery,那么你需要rails jquery helper