繁体   English   中英

Rails 3破坏链接不起作用

[英]Rails 3 destroy link not working

我的销毁链接不起作用。

我的索引视图:

<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 

如果您使用的是 RESTful 资源,请尝试以下操作:

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

您可能需要将其更改为:

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

或者如果您使用 RESTful 路由,例如:

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

使用命名空间控制器和路由时,您必须使用命名空间模型才能使link_to帮助器正确地连接到 function。

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

例如,在 app/models/admin/person.rb

class Admin::Person < Person    
end

使各种 forms 和链接更加简单。

如果是 RESTful 资源,请尝试以下操作:

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

并使用适当的 javascript 助手。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM