Rails 3 уничтожить ссылку не работает - PullRequest
1 голос
/ 26 мая 2011

Моя ссылка уничтожения не работает.

Мое представление индекса:

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

Мой частичный конкурент:

<% 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 

Ответы [ 4 ]

6 голосов
/ 26 мая 2011

Если вы используете ресурсы RESTful, попробуйте это:

<%= link_to 'Destroy', [:admin, konkurrancer], :method => :delete %>
2 голосов
/ 26 мая 2011

Возможно, вам нужно изменить его на что-то вроде:

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

или, если вы используете маршруты RESTful, что-то вроде:

<%= link_to 'Destroy', delete_konkurrancer(:id => konkurrancer.id), :method => :delete %>
0 голосов
/ 20 сентября 2011

В случае ресурсов RESTful, попробуйте это:

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

и используйте соответствующий помощник javascript.

Это проблема помощника по рельсам javascript.Вам нужно использовать rails.js соответствующим образом.Если вы используете prototype.js, то в rails.js вам нужны методы-помощники для прототипов, иначе, если вы используете jquery, тогда вам нужен rails jquery helper .

0 голосов
/ 03 июня 2011

При работе с контроллерами и маршрутами пространства имен необходимо использовать модели пространства имен, чтобы помощники link_to работали правильно.

Когда я пишу дополнительные страницы администратора для моделей, я также генерирую некоторые модели-оболочки в пространстве имен admin.

например, в приложении / models / admin / person.rb

class Admin::Person < Person    
end

Делает формы всех видов, и ссылки, намного проще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...