0

Railsアプリケーションで「作成」メソッドが正常に完了した後にいくつかの機能を実行するajaxフォームの作成に取り組んでいます。単語の定義を検索して表示し、ユーザーが目的の定義を保存したら画面から削除することを中心に展開します。私が抱えている問題は、success.js.erb から関数 rollUp と revertButtons (words.js に格納されている) にアクセスすることです。関数をapplication.jsに入れてみましたが、それでも機能しません。現在、これらの関数がファイルに含まれている場合、success.js.erb はまったく実行されていません...何かアイデアはありますか?

アクションの作成:

if @word.save!
    params['word_definition'].each do |definition|
        if @word.definitions.create(text: definition)
            numDefs += 1
        end
    end
    respond_to do |format|
        if numDefs > 0  
            format.js { render action: "success" }
        end
    end
else
    format.js { render action: "failure" }
end

言葉.js:

function submitForm(){
    if(isSubmittable()){
        $('#findWord form').serialize();
        $('#findWord form').submit();
    }
}
// other functions, like revertButtons() and rollUp() are stored here too

success.js.erb:

revertButtons();
rollUp();
$('<div />', {  class: "alert alert-success",
            text: "The word has been saved",
         }).wrap('<div class="single_error" />').parent().appendTo("#fieldAndErrorsContainer");
4

1 に答える 1

0

ええ、私はばかのように感じます。$(document).ready() 内ですべての関数を宣言していたため、その関数のスコープに追いやられ、他の場所からアクセスできませんでした。学んだ教訓。

于 2012-09-19T02:52:25.363 に答える