在我的应用程序中,只要有表单,我就会调用两个辅助方法将一些javascript注入到网页的头部。一种方法注入代码以专注于表单的第一个输入,第二种方法将一些回调用于client_side_validation gem。
我将在视图中具有form_for的任何页面上调用这两个方法。有没有办法在调用form_for时自动调用这些方法,而不是将调用添加到我的模板文件中?
使用Rails 3.1。
答案 0 :(得分:0)
您应该使用自己的调用助手的方法来包装form_for。幸运的是,Rails以alias_method_chain
的形式提供了一种简单的方法。
module ActionView::Helpers::FormHelper
def form_for_with_my_helpers (*args)
my_helpers
form_for_without_my_helpers (*args)
end
alias_method_chain :form_for :my_helpers
end
如果您不希望表单使用您的助手,现在可以使用普通的form_for参数调用form_for_without_my_helpers。
这可能会出现在加载路径中的某个位置。或者您可以要求保存此代码的文件。
答案 1 :(得分:0)
你不应该为这些使用Rails帮助方法。你应该使用jQuery。将其添加到您的application.js文件:
$(document).ready(function() {
$('form>input:first-child').focus();
}
这是一个例子,对你正在讨论的回调使用类似的方法。