我有这段代码:
$('#my_form .submit').click( ->
$.ajax( ->
type: "post",
url: "????",
data: $("#myform").serialize(),
#success: this.saveUserResponse
)
POST /schedule_details(.:format) {:action=>"create", :controller=>"schedule_details"}
我想这是两个问题,或者正在寻找正确的方法。我怎样才能使用shedule_details_create_path,如何在我的javascript中使用它?或者,有更好的方法吗?
感谢您的帮助。
答案 0 :(得分:4)
如何不引人注意地AJAX化表单而不是订阅提交按钮的单击处理程序:
$('#my_form').submit(function() {
$.ajax({
type: this.method,
url: this.action,
data: $(this).serialize(),
success: this.saveUserResponse
});
return false;
});
这样您就可以使用路由生成表单并在标记中正确设置其action属性。然后你的javascript完全独立。
答案 1 :(得分:1)
js-routes gem对我很有用。
的Gemfile:
gem "js-routes"
在application.js中需要js routes文件。
//= require js-routes
首次尝试js-routes之前刷新资产管道缓存并重新启动rails服务器:
rake tmp:cache:clear
rails s
最后在你的coffeescript文件中:
Routes.users_path()
# => "/users"
Routes.user_path 1
# => "/users/1"
Routes.user_path 1, format: 'json'
# => "/users/1.json"
Routes.user_path 1, anchor: 'profile'
# => "/users/1#profile"
Routes.new_user_project_path 1, format: 'json'
# => "/users/1/projects/new.json"
对于高级配置,只需检查js-routes github repo。
答案 2 :(得分:0)
你可以这样写:
match "/schedule_details/create" => "schedule_details#create"
并将/ schedule_details / create放在你的ajax调用的url:param中。
希望我理解你的需要!