ссылка для подтверждения, независимо от того, ответ всегда выполнит действие - PullRequest
0 голосов
/ 06 ноября 2011

Когда я нажимаю на ссылку, выскакивает подтверждение, но независимо от того, отвечаю я Да или Нет, оно всегда выполняет действие и удаляет запись.

Вид:

link_to "Remove", gamep, :method => :delete, :confirm => "Remove "+@player.name+" from "+gamep.game.title+"?"

Действие:

def destroy
  @gameplayer = GamePlayer.find(params[:id])
  @gameplayer.destroy
  respond_to do   |format|
    format.html { redirect_to @gameplayer.player }
  end
end

Да, у меня есть

javascript_include_tag :defaults

Edit: Мне пришлось исправить это с помощью jquery.rails.js, потому что метод: delete не работал. Без этого подтверждения нет, а link_to просто действует как обычная ссылка.

По какой-то причине, когда я установил гем 'jquery-rails', он не поместил 'jquery-ujs.js' в мою папку 'public / javascripts'.

C: /Ruby192/lib/ruby/gems/1.9.1/gems/jquery-rails-1.0.16

C: /Ruby192/lib/ruby/gems/1.9.1/gems/rails-3.1.1

application.js

// Разместите здесь функции и классы JavaScript для вашего приложения

// Этот файл автоматически включается javascript_include_tag: значения по умолчанию

// = требуется jquery

// = требуется jquery_ujs

// = require_tree.

1 Ответ

0 голосов
/ 06 ноября 2011

В Rails 3.1 вы должны использовать «application», а не «defaults», иначе ни один из ваших javascript не будет загружен должным образом:

javascript_include_tag "application"

Кроме того, вам не нужно вручную включать какие-либо дополнительные файлы javascript, поскольку манифест приложения (app/assets/javascripts/application.js) уже вытянет их все. Просто сделайте все, что вам нужно, 1005 * всех * вашего JS файлы находятся в app/assets/javascripts, а не в 'public / javascripts`.

И убедитесь, что вы не используете файл rails.js из предыдущих версий Rails. Это было заменено гемом jquery-rails в Rails 3.1.

...