Rails 3 ошибки данных с link_to - PullRequest
1 голос
/ 20 июля 2011

Я некоторое время искал решение, но не смог выяснить, что не так с моим кодом.

Я пытаюсь удалить элемент с помощью вызова ajax настраница события, но она не работает.

<%= link_to 'X', { :controller => 'items', :action => 'destroy', :id => item.id }, :method => :delete, :confirm => 'Are you sure you want to delete this item?', :remote => true %>

<a rel="nofollow" data-method="delete" data-confirm="Are you sure you want to delete this item?" href="/items/83">X</a>

Я считаю, что все выглядит правильно, однако атрибуты данных, похоже, не работают.Когда я нажимаю на это, подтверждения не происходит, и вместо этого он вызывает действие «show» для контроллера, поэтому метод данных также не работает.

Самое странное, что я что-то еще на странице, которая генерируетподтверждающие сообщения.

<%= link_to image_tag("trashcan.png"), @event, :confirm => 'Are you sure you want to delete this event?', :method => :delete %>

<a rel="nofollow" data-method="delete" data-confirm="Are you sure you want to delete this event?" href="/events/3">

Я пытался заменить 'X' в первом изображении (в случае, если image_tag добился цели) - не повезло.Однако, когда я изменил link_to на button_to, он действительно удалил, но не подтверждение, которое я предполагаю, кнопка не поддерживает.Поэтому я не уверен, что у меня может быть какая-то ошибка javascript где-то еще, что, как я полагаю, не так, потому что это работает в другом случае, или, может быть, я что-то упустил где-то.

Редактировать: я забылупомянуть, у меня также есть комментарий для каждого элемента, и это работает также ...

<%= link_to 'X', [comment.item, comment], :confirm => 'Are you sure?', :method => :delete, :remote => true %>
<a rel="nofollow" data-remote="true" data-method="delete" data-confirm="Are you sure?" href="/items/83/comments/32">X</a>

1 Ответ

1 голос
/ 26 июля 2011

Исправлено, проблема была в том, что у меня был div за этими ссылками, где я связывал событие click и в котором я также вызывал event.stopPropagation (), таким образом, предотвращал вызовы данных.

...