0

我正在创建一个 ajax 表单,该表单将在我的 rails 应用程序中成功完成“create”方法后执行一些函数。它围绕查找单词的定义,显示它们,然后在用户保存所需的定义后将它们从屏幕上删除。我遇到的问题是从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

words.js:

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

成功.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 回答