2013-05-05 6 views
1

Я создал новый эшафот rails generate scaffold scores score:integer route_id:integer и пробежал rake db:migrate.Уничтожить ссылку в Rails 3.2 отображает данные вместо их удаления

Это хорошо работает, но когда я перехожу на страницу оценки, чтобы удалить некоторые данные, ссылка на удаление каким-либо образом отображает детали представления, но не удаляет их. Я также сравнил ссылку с некоторыми другими проектами, и она выглядит почти так же, как и на этот раз.

Вот что у меня есть в моей index.html.erb странице:

<td><%= link_to 'Destroy', score, method: :delete, data: { confirm: 'Are you sure?' } %></td> 

Я нашел в некоторых постах на этом сайте, который нуждается в файле драгоценного камня, чтобы содержать gem 'jquery-rails', так что я проверил, и именно там. Я снова запустил bundle install, но никаких изменений. Изменение от link_to до button_to тоже не помогло.

Есть ли у кого-нибудь идеи, что еще может быть? Если вам нужна дополнительная информация, дайте мне знать, и я буду рад добавить его.

Большое спасибо.

ответ

0

Я предполагаю, что method: :delete переопределяется или игнорируется, так как вы предоставляете ресурс. Не могли бы вы попробовать это?

<td><%= link_to 'Destroy', destroy_score_path(score), data: { confirm: 'Are you sure?' } %></td> 

Вот документация link_to для справки: http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to

+0

Спасибо за ваш быстрый ответ. Я попробовал, но это дает мне следующую ошибку: 'undefined method' destroy_score_path 'для # <# <Класс: 0xb58094d0>: 0x947ce90> ' – Ron

+0

Я тоже думаю, что он будет перезаписан другой функцией. Вопрос в чем? Он работал в начале, но потом я сделал так много вещей, о которых очень трудно вспомнить. – Ron

+0

Быстрое предположение: попробуйте 'destroy_scores_path' (множественное число). Возможно, вы обновили версии рельсов и изменилось поведение. Согласно api docs для этого метода это только одна версия, где тело может быть указано как первый аргумент, а url (или предположительно модель) можно указать как второй аргумент: link_to (body, url, html_options = {}) , В этом случае третьим аргументом является html_options. Я хотел бы рассмотреть метод:: delete' url_option. Вот почему я думал, что это, возможно, было проигнорировано. Не могли бы вы разместить свои «routes.rb» и исходный код, созданный вашей линией выше? – f1sherman

1

Иногда это происходит потому, что вы не включили jquery_ujs в вашем приложении. Откройте консоль браузера и проверьте, включен ли jquery_ujs или если он включен несколько раз.

0

Простой. Вам нужно включить jquery_ujs, также называемый rails.js в вашем приложении application.html.erb. У меня есть этот вопрос раньше. Для этого Rails нужен rails.js.

1

У меня была такая же проблема, и мне удалось решить только после того, как я добавил как JQuery и jquery_ujs на мою страницу:

<%= javascript_include_tag "jquery" %> 
<%= javascript_include_tag "jquery_ujs" %> 
<%= javascript_include_tag "application" %> 

я, скорее всего, есть проблемы с трубопроводами активов, как я просил оба из них в application.js, но это не сработало, если они не были явно запрошены на странице. В моем приложении.js У меня есть:

//= require_jquery 
//= require_jquery_ujs 
//= require_tree . 
Смежные вопросы